Ausführen von Windows PowerShell-Schritten in SQL Server-Agent
Führen Sie die SQL Server PowerShell-Skripts mithilfe des SQL Server-Agent nach Zeitplan aus.
Bevor Sie beginnen: Einschränkungen und Einschränkungen
So führen Sie PowerShell über SQL Server-Agent aus: PowerShell-Auftragsschritt, Eingabeaufforderungsauftragsschritt
Vorbereitungen
Es gibt mehrere Typen von Auftragsschritten im SQL Server-Agent. Jeder Typ ist einem Subsystem zugeordnet, das eine bestimmte Umgebung implementiert, wie eine Replikations-Agent- oder Eingabeaufforderungsumgebung. Sie können Windows PowerShell-Skripts schreiben und die Skripts dann mit dem SQL Server-Agent in Aufträge integrieren, die zu festgelegten Zeiten oder in Reaktion auf SQL Server-Ereignisse ausgeführt werden. Windows PowerShell-Skripts können mit entweder einem Eingabeaufforderungs-Auftragsschritt oder einem PowerShell-Auftragsschritt ausgeführt werden.
Verwenden Sie einen PowerShell-Auftragsschritt, um das SQL Server-Agent Subsystem ausführen zu
sqlps
lassen, das PowerShell 2.0 startet und dassqlps
Modul importiert.Verwenden Sie einen Auftragsschritt an einer Eingabeaufforderung, um <ui>PowerShell.exe</ui> auszuführen, und geben Sie ein Skript an, das das
sqlps
-Modul importiert.
Einschränkungen
Achtung
Jeder SQL Server-Agent Auftragsschritt, der PowerShell mit dem sqlps
Modul ausführt, startet einen Prozess, der ca. 20 MB Arbeitsspeicher verbraucht. Die gleichzeitige Ausführung einer großen Anzahl von Windows PowerShell-Auftragsschritten kann sich negativ auf die Leistung auswirken.
Erstellen eines PowerShell-Auftragsschritts
So erstellen Sie einen PowerShell-Auftragsschritt
Erweitern Sie SQL Server-Agent, erstellen Sie einen neuen Auftrag, oder klicken Sie mit der rechten Maustaste auf einen vorhandenen Auftrag, und klicken Sie dann auf Eigenschaften. Weitere Informationen zum Erstellen eines Auftrags finden Sie unter Erstellen von Aufträgen.
Klicken Sie im Dialogfeld Auftragseigenschaften auf die Seite Schritte und dann auf Neu.
Geben Sie im Dialogfeld Neuer Auftragsschritt unter Schrittnameeinen Schrittnamen für den Auftrag ein.
Klicken Sie in der Liste Typ auf PowerShell.
Wählen Sie in der Liste Ausführen als das Proxykonto mit den Anmeldeinformationen für den Auftrag aus.
Geben Sie im Feld Befehl die PowerShell-Skriptsyntax ein, die für den Auftragsschritt ausgeführt wird. Klicken Sie alternativ auf Öffnen , und wählen Sie eine Datei aus, die die Skriptsyntax enthält.
Klicken Sie auf die Seite Erweitert , um die folgenden Optionen für den Auftragsschritt festzulegen: welche Aktion bei der erfolgreichen oder fehlerhaften Ausführung des Auftragsschrittes jeweils auszuführen ist, wie oft der SQL Server -Agent versuchen soll, den Auftragsschritt auszuführen, und wie viele Wiederholungsversuche unternommen werden sollen.
Erstellen eines Eingabeaufforderungs-Auftragsschritts
So erstellen Sie einen CmdExec-Auftragsschritt
Erweitern Sie SQL Server-Agent, erstellen Sie einen neuen Auftrag, oder klicken Sie mit der rechten Maustaste auf einen vorhandenen Auftrag, und klicken Sie dann auf Eigenschaften. Weitere Informationen zum Erstellen eines Auftrags finden Sie unter Erstellen von Aufträgen.
Klicken Sie im Dialogfeld Auftragseigenschaften auf die Seite Schritte und dann auf Neu.
Geben Sie im Dialogfeld Neuer Auftragsschritt unter Schrittnameeinen Schrittnamen für den Auftrag ein.
Wählen Sie in der Liste Typ den Eintrag Betriebssystem (CmdExec) aus.
Wählen Sie in der Liste Ausführen als das Proxykonto mit den Anmeldeinformationen für den Auftrag aus. Standardmäßig werden CmdExec-Auftragsschritte im Kontext des Kontos des SQL Server-Agent-Dienstes ausgeführt.
Geben Sie in das Feld Prozessexitcode eines erfolgreichen Befehls einen Wert zwischen 0 und 999999 ein.
Geben Sie im Feld Befehl "powershell.exe" zusammen mit Parametern, die das auszuführende PowerShell-Skript angeben, ein.
Klicken Sie auf die Seite Erweitert, um Optionen für Auftragsschritte festzulegen (z. B. welche Aktion bei der erfolgreichen oder fehlerhaften Ausführung des Auftragsschrittes jeweils auszuführen ist, wie oft der SQL Server-Agent versuchen soll, den Auftragsschritt auszuführen, und in welche Datei der SQL Server-Agent die Auftragsschrittausgabe schreiben soll). Nur Mitglieder der festen Serverrolle sysadmin können die Auftragsschrittausgabe in eine Betriebssystemdatei schreiben.