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.
Vorbereitungen: Begrenzungen und Einschränkungen
Zur Ausführung von PowerShell von SQL Server-Agent mit: PowerShell-Auftragsschritt, Eingabeaufforderungs-Auftragsschritt
Vorbereitungen
Es gibt mehrere Typen von SQL Server-Agent-Auftragsschritten. 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, damit das Subsystem des SQL Server-Agent das Hilfsprogramm sqlps ausführt, das PowerShell 2.0 startet und das sqlps-Modul importiert.
Verwenden Sie einen Auftragsschritt an einer Eingabeaufforderung, um PowerShell.exe auszuführen, und geben Sie ein Skript an, das das sqlps-Modul importiert.
Einschränkungen
Vorsicht |
---|
Jeder Auftragsschritt des SQL Server-Agents, der PowerShell mit dem Modul sqlps ausführt, startet einen Prozess, der etwa 20 MB Arbeitsspeicher in Anspruch nimmt. Die gleichzeitige Ausführung einer großen Anzahl von Windows PowerShell-Auftragsschritten kann sich negativ auf die Leistung auswirken. |
[Nach oben]
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 Schrittname einen 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.
[Nach oben]
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.
Nehmen Sie im Dialogfeld Neuer Auftragsschritt unter Schrittname eine Eingabe vor.
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.
[Nach oben]