diff --git a/CHANGELOG.md b/CHANGELOG.md index 202b10fc13..5dfbfac6d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -48,6 +48,8 @@ - Test-SQLDscParameterState helper function can now correctly pass a CimInstance as DesiredValue. - Test-SQLDscParameterState helper function will now output a warning message if the value type of a desired value is not supported. + - Changes to Connect-SQL and Import-SQLPSModule + - Now it correctly loads the correct assemblies when SqlServer module is present (issue #649). - Changes to xSQLServerSetup - BREAKING CHANGE: Replaced StartWin32Process helper function with the cmdlet Start-Process (issue #41, #93 and #126). - BREAKING CHANGE: The parameter SetupCredential has been removed since it is no longer needed. This is because the resource now support the built-in PsDscRunAsCredential. diff --git a/xSQLServerHelper.psm1 b/xSQLServerHelper.psm1 index a342e76a38..07258d0c4f 100644 --- a/xSQLServerHelper.psm1 +++ b/xSQLServerHelper.psm1 @@ -34,7 +34,7 @@ function Connect-SQL $SetupCredential ) - $null = [System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.Smo') + Import-SQLPSModule if ($SQLInstanceName -eq "MSSQLSERVER") { @@ -674,6 +674,15 @@ function Import-SQLPSModule else { New-VerboseMessage -Message 'Module SqlServer not found, trying to use older SQLPS module.' + + <# + After installing SQL Server the current PowerShell session doesn't know about the new path + that was added for the SQLPS module. + This reloads PowerShell session environment variable PSModulePath to make sure it contains + all paths. + #> + $env:PSModulePath = [System.Environment]::GetEnvironmentVariable("PSModulePath","Machine") + $module = (Get-Module -FullyQualifiedName 'SQLPS' -ListAvailable).Name }