Windows-7- und Windows-8-Clients

Windows Server 2008 R2/2012, Exchange 2010 und SQL Server 2012 remote verwalten

Mit SQL Server und PowerShell arbeiten

Standardmäßig blockiert die Windows-PowerShell nicht-signierte Skripts über die Ausführungsrichtlinie. Davon ist auch die SQL-PowerShell betroffen. Sie können die Ausführungsrichtlinie mit dem Cmdlet Set-ExecutionPolicy ändern und mit

Get-ExecutionPolicy

anzeigen. Die Ausführungsrichtlinie speichert ihre Daten in der Windows-Registrierung. Sie können folgende Einstellungen vornehmen:

Restricted - Standardeinstellung. Keine Skripts erlaubt, SQL-Skripts funktionieren nicht.

AllSigned - Nur signierte Skripts sind erlaubt. Auch hier funktionieren keine SQL-Skripts, da diese nicht signiert sind.

RemoteSigned - Bei dieser Einstellung müssen Sie Skripts durch eine Zertifizierungsstelle signieren lassen.

Unrestricted - Mit dieser Einstellung funktionieren auch die SQL-Skripts.

Nach der Eingabe von

Set-ExecutionPolicy unrestricted

müssen Sie die Ausführung noch bestätigen. Als Nächstes laden Sie mit

Import-Module sqlps

die Erweiterung in die PowerShell. Die Warnung, die daraufhin erscheint, können Sie ignorieren. Sie müssen nicht den ganzen Namen eines Cmdlet-Parameters angeben. Es genügen so viele Zeichen des Namens, dass dieser eindeutig von den anderen Parametern unterschieden werden kann, die das Cmdlet unterstützt. Hierfür drei Beispiele:

Invoke-Sqlcmd -Query "SELECT @@VERSION;" -QueryTimeout 3

Invoke-Sqlcmd -Query "SELECT @@VERSION;" -QueryTime 3

Invoke-Sqlcmd -Query "SELECT @@VERSION;" -QueryT 3

Alle drei Befehle führen eine T-SQL-Anweisung in der PowerShell durch, die den Status des Servers anzeigt. Wenn Sie am Ende noch ein |fl eingeben, erhalten Sie ausführlichere Informationen.

Mit

Get-Help SQLServer

erhalten Sie eine Hilfe zu den speziellen SQL-Server-Befehlen in der PowerShell. Wollen Sie alle Methoden für ein bestimmtes Objekt anzeigen, zum Beispiel bei der Verwaltung der Datenbanken, verwenden Sie:

Set-Location SQL:\<Servername>\DEFAULT\Databases

Get-Item . | Get-Member -Type Methods