Posted On June 15, 2020

Loading the SQL Server Management Objects (SMO)

kimconnect 0 comments
blog.KimConnect.com >> Codes , Database >> Loading the SQL Server Management Objects (SMO)
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
        } 
}

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Post

PowerShell: Process Watcher – Restart Stopped Services

# processWatcher.ps1 # User Input $computername=$env:computername $serviceName='remoteregistry' $desiredStatus='Running' $action={ param($serviceName) $erroractionpreference='stop' try{ start-service $serviceName return…

NGINX

# Create nginx.repovim /etc/yum.repos.d/nginx.repo#### content ####[nginx]name=nginx repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck=0 enabled=1###############sudo yum update nginxsudo service nginx…

Docker DRUPAL Container

# Preseed drupal files with persitent storagemkdir /var/www/html/kimconnect/{modules,profiles,sites,themes}docker run --rm drupal tar -cC /var/www/html/sites .…