TCP-Verbindungen für SQL Server aktivieren via PowerShell

Der Dotnet-Doktor  –  1 Kommentare

Auf einem meiner Rechner wollte der "SQL Server Configuration Manager" nicht mehr starten, den ich brauchte, um das TCP-Protokoll als "Client Protocol" für den Zugriff auf den Microsoft SQL Server zu aktivieren. Fehlermeldung: "Cannot connect to WMI provider".

Das Problem ist bei Microsoft dokumentiert im Knowledge-Base-Beitrag 956013 und ließ sich in meinem Fall lösen mit diesem Kommandozeilenbefehl:

Mofcomp "C:\Program Files (x86)\Microsoft SQL Server\140\Shared\sqlmgmproviderxpsp2up.mof"

Dabei muss die Windows-Konsole als Administrator gestartet sein.

Noch bevor ich diese Lösung fand, hatte ich das Protokoll schon per PowerShell aktivieren können – mit diesem Skript:

$ErrorActionPreference = "Stop"
Import-Module "sqlps"
$smo = new-object "Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer"
$Computer = ($env:computername)
$computer
# TCP-Protokoll für SQL Server Default Instance aktivieren
$uri = "ManagedComputer[@Name='$Computer']/ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Tcp']"

$sp = $smo.GetSmoObject($uri)
"--------- Alter Zustand"
"Vorher: " + $sp.IsEnabled
"--------- TCP aktivieren"
$sp.IsEnabled = $true
$sp.Alter()
"--------- Neuer Zustand"
"Nachher: " + $sp.IsEnabled

# Dienstneustart notwendig!!!
Restart-Service MSSQLServer -force

In meinem Fall bekam ich für den Server S21 die Ausgabe:

Computer: S21
Vorher: False
Nachher: True