Ausführen von Windows PowerShell-Schritten in SQL Server-AgentRun Windows PowerShell Steps in SQL Server Agent

Führen Sie die SQL Server PowerShell-Skripts mithilfe des SQL Server-Agent nach Zeitplan aus.Use SQL Server Agent to run SQL Server PowerShell scripts at schedule times.

  1. Before you begin: Limitations and RestrictionsBefore you begin: Limitations and Restrictions

  2. To run PowerShell from SQL Server Agent, using: PowerShell Job Step, Command Prompt Job StepTo run PowerShell from SQL Server Agent, using: PowerShell Job Step, Command Prompt Job Step

VorbereitungenBefore You Begin

Es gibt mehrere Typen von SQL ServerSQL Server -Agent-Auftragsschritten.There are several types of SQL ServerSQL Server Agent job steps. Jeder Typ ist einem Subsystem zugeordnet, das eine bestimmte Umgebung implementiert, wie eine Replikations-Agent- oder Eingabeaufforderungsumgebung.Each type is associated with a subsystem that implements a specific environment, such as a replication agent or command prompt environment. Sie können Windows PowerShell-Skripts schreiben und die Skripts dann mit dem SQL ServerSQL Server -Agent in Aufträge integrieren, die zu festgelegten Zeiten oder in Reaktion auf SQL ServerSQL Server -Ereignisse ausgeführt werden.You can code Windows PowerShell scripts, and then use SQL ServerSQL Server Agent to include the scripts in jobs that run at scheduled times or in response to SQL ServerSQL Server events. Windows PowerShell-Skripts können mit entweder einem Eingabeaufforderungs-Auftragsschritt oder einem PowerShell-Auftragsschritt ausgeführt werden.Windows PowerShell scripts can be run using either a command prompt job step or a PowerShell job step.

  1. Verwenden Sie einen PowerShell-Auftragsschritt, damit das Subsystem des SQL ServerSQL Server -Agent das Hilfsprogramm sqlps ausführt, das PowerShell 2.0 startet und das sqlps -Modul importiert.Use a PowerShell job step to have the SQL ServerSQL Server Agent subsystem run the sqlps utility, which launches PowerShell and imports the sqlps module.

  2. 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.Use a command prompt job step to run PowerShell.exe, and specify a script that imports the sqlps module.

Einschränkungen Limitations and Restrictions

Achtung

Jeder Auftragsschritt des SQL ServerSQL Server -Agents, der PowerShell mit dem Modul sqlps ausführt, startet einen Prozess, der etwa 20 MB Arbeitsspeicher in Anspruch nimmt.Each SQL ServerSQL Server Agent job step that runs PowerShell with the sqlps module launches a process which consumes approximately 20 MB of memory. Die gleichzeitige Ausführung einer großen Anzahl von Windows PowerShell-Auftragsschritten kann sich negativ auf die Leistung auswirken.Running large numbers of concurrent Windows PowerShell job steps can adversely impact performance.

Erstellen eines PowerShell-Auftragsschritts Create a PowerShell Job Step

So erstellen Sie einen PowerShell-AuftragsschrittTo create a PowerShell job step

  1. 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.Expand SQL Server Agent, create a new job or right-click an existing job, and then click Properties. Weitere Informationen zum Erstellen eines Auftrags finden Sie unter Erstellen von Aufträgen.For more information about creating a job, see Creating Jobs.

  2. Klicken Sie im Dialogfeld Auftragseigenschaften auf die Seite Schritte und dann auf Neu.In the Job Properties dialog, click the Steps page, and then click New.

  3. Geben Sie im Dialogfeld Neuer Auftragsschritt unter Schrittnameeinen Schrittnamen für den Auftrag ein.In the New Job Step dialog, type a job Step name.

  4. Klicken Sie in der Liste Typ auf PowerShell.In the Type list, click PowerShell.

  5. Wählen Sie in der Liste Ausführen als das Proxykonto mit den Anmeldeinformationen für den Auftrag aus.In the Run as list, select the proxy account with the credentials that the job will use.

  6. Geben Sie im Feld Befehl die PowerShell-Skriptsyntax ein, die für den Auftragsschritt ausgeführt wird.In the Command box, enter the PowerShell script syntax that will be executed for the job step. Klicken Sie alternativ auf Öffnen , und wählen Sie eine Datei aus, die die Skriptsyntax enthält.Alternately, click Open and select a file containing the script syntax.

  7. 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 ServerSQL Server -Agent versuchen soll, den Auftragsschritt auszuführen, und wie viele Wiederholungsversuche unternommen werden sollen.Click the Advanced page to set the following job step options: what action to take if the job step succeeds or fails, how many times SQL ServerSQL Server Agent should try to execute the job step, and how often retry attempts should be made.

Erstellen eines Eingabeaufforderungs-Auftragsschritts Create a Command Prompt Job Step

So erstellen Sie einen CmdExec-AuftragsschrittTo create a CmdExec job step

  1. 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.Expand SQL Server Agent, create a new job or right-click an existing job, and then click Properties. Weitere Informationen zum Erstellen eines Auftrags finden Sie unter Erstellen von Aufträgen.For more information about creating a job, see Creating Jobs.

  2. Klicken Sie im Dialogfeld Auftragseigenschaften auf die Seite Schritte und dann auf Neu.In the Job Properties dialog, click the Steps page, and then click New.

  3. Geben Sie im Dialogfeld Neuer Auftragsschritt unter Schrittnameeinen Schrittnamen für den Auftrag ein.In the New Job Step dialog, type a job Step name.

  4. Wählen Sie in der Liste Typ den Eintrag Betriebssystem (CmdExec)aus.In the Type list, choose Operating system (CmdExec).

  5. Wählen Sie in der Liste Ausführen als das Proxykonto mit den Anmeldeinformationen für den Auftrag aus.In Run as list, select the proxy account with the credentials that the job will use. Standardmäßig werden CmdExec-Auftragsschritte im Kontext des Kontos des SQL Server-Agent-Dienstes ausgeführt.By default, CmdExec job steps run under the context of the SQL Server Agent service account.

  6. Geben Sie in das Feld Prozessexitcode eines erfolgreichen Befehls einen Wert zwischen 0 und 999999 ein.In the Process exit code of a successful command box, enter a value from 0 to 999999.

  7. Geben Sie im Feld Befehl "powershell.exe" zusammen mit Parametern, die das auszuführende PowerShell-Skript angeben, ein.In the Command box, enter powershell.exe with parameters specifying the PowerShell script to be run.

  8. 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 ServerSQL Server -Agent versuchen soll, den Auftragsschritt auszuführen, und in welche Datei der SQL ServerSQL Server -Agent die Auftragsschrittausgabe schreiben soll.Click the Advanced page to set job step options, such as: what action to take if the job step succeeds or fails, how many times SQL ServerSQL Server Agent should try to execute the job step, and the file where SQL ServerSQL Server Agent can write the job step output. Nur Mitglieder der festen Serverrolle sysadmin können die Auftragsschrittausgabe in eine Betriebssystemdatei schreiben.Only members of the sysadmin fixed server role can write job step output to an operating system file.

Siehe auchSee Also

SQL Server-PowerShellSQL Server PowerShell