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