Genau genommen ist die Frage, ich benutze diese Lösung und es funktioniert, aber gibt es einen besseren Weg?Powershell: Finden Sie alle SQL Server-Instanzen pro ser Server?
Mit den folgenden Einschränkungen.
1) Ich möchte keine netzwerkweite Suche nach SQL-Instanzen durchführen, ich befrage bekannte SQL-Server, aber ich möchte die Instanznamen auf jedem abgreifen.
2) Der Code geht davon aus, dass Microsoft den Anzeigenamen für den SQL Server-Dienst nie ändern wird.
function getSQLInstance ([string]$SERVER) {
$services = Get-Service -Computer $SERVER
# Filter for SQL services
$services = $services | ? DisplayName -like "SQL Server (*)"
# Remove MSSQL$ qualifier to get instance name
try {
$instances = $services.Name | ForEach-Object {($_).Replace("MSSQL`$","")}
}catch{
# Error if none found
return -1
}
return $instances
}
getSQLInstance "YOUR_SERVER"