Mit diesem Skript können sie sich zum SQL-Server verbinden und alle Instanzen durchlaufen:
#Region "Import Assembly"
[void][Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO")
[void][Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMOExtended")
[void][Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoEnum")
[void][Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SqlEnum")
[void][Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Management.Sdk.Sfc")
#EndRegion
#Wieviele Instanzen sind drauf?
$Instances=(get-itemproperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server').InstalledInstances
Write-Host "Found $($Instances.Count) Instances $Instances"
# Alle Instanzen durchlaufen
ForEach ($Instance in $Instances ){
#standard oder named?
IF ($Instance -eq "MSSQLSERVER")
{
$SQLInstance = $env:COMPUTERNAME
}
else
{
$SQLInstance="$env:COMPUTERNAME\$Instance"
}
Write-Host "Attempting to connect SQL-Server Service on $SQLInstance"
$server = new-object ('Microsoft.SqlServer.Management.Smo.Server') $SQLInstance
#ok, wir probieren den connect
try {
$server.ConnectionContext.Connect()
}
catch
{
Write-Error "Can't connect to SQL Server $SQLInstance."
throw "Can't connect to SQL Server $SQLInstance."
}
Write-Host -ForegroundColor Green "Connection to SQL-Service $SQLInstance succeeded."
# Ab hier die eigentlichen Arbeiten
#
# Verbindung beenden
$server.ConnectionContext.Disconnect()
Write-Host -ForegroundColor Green "Connection to SQL-Service $SQLInstance closed."
} #ForEach