function loadSMO{
$ErrorActionPreference = "Stop"
$sqlpsRegistry="HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.SqlServer.Management.PowerShell.sqlps"
try{
if (Get-ChildItem $sqlpsRegistry -ErrorAction "SilentlyContinue") {
throw "SQL Server Provider for Windows PowerShell is not installed."
}
else{
$registryItem = Get-ItemProperty $sqlpsRegistry
$sqlpsPath = [System.IO.Path]::GetDirectoryName($registryItem.Path)
}
$assemblylist =
"Microsoft.SqlServer.Management.Common",
"Microsoft.SqlServer.Smo",
"Microsoft.SqlServer.Dmf",
"Microsoft.SqlServer.Instapi",
"Microsoft.SqlServer.SqlWmiManagement",
"Microsoft.SqlServer.ConnectionInfo",
"Microsoft.SqlServer.SmoExtended",
"Microsoft.SqlServer.SqlTDiagM",
"Microsoft.SqlServer.SString",
"Microsoft.SqlServer.Management.RegisteredServers",
"Microsoft.SqlServer.Management.Sdk.Sfc",
"Microsoft.SqlServer.SqlEnum",
"Microsoft.SqlServer.RegSvrEnum",
"Microsoft.SqlServer.WmiEnum",
"Microsoft.SqlServer.ServiceBrokerEnum",
"Microsoft.SqlServer.ConnectionInfoExtended",
"Microsoft.SqlServer.Management.Collector",
"Microsoft.SqlServer.Management.CollectorEnum",
"Microsoft.SqlServer.Management.Dac",
"Microsoft.SqlServer.Management.DacEnum",
"Microsoft.SqlServer.Management.Utility"
foreach ($assembly in $assemblylist) {
$assembly = [Reflection.Assembly]::LoadWithPartialName($assembly)
}
Push-Location
cd $sqlpsPath
update-FormatData -prependpath SQLProvider.Format.ps1xml
Pop-Location
write-host "SMO successfully loaded."
return $true
}
catch{
write-warning "$error"
return $false
}
}
June 15, 2020June 15, 2020
0 Comments