Freigeben über


Erstellen eines PowerShell-Skriptauftragsschritts

Gilt für:SQL ServerAzure SQL Managed Instance

Wichtig

In azure SQL Managed Instancewerden die meisten, aber nicht alle SQL Server-Agent-Features derzeit unterstützt. Weitere Informationen finden Sie unter T-SQL-Unterschiede zwischen Azure SQL Managed Instance T-SQL und SQL Server oder SQL Agent-Jobbeschränkungen in SQL Managed Instance.

In diesem Artikel wird beschrieben, wie Sie mit SQL Server Management Studio oder Transact-SQL einen Auftragsschritt für den SQL Server-Agent erstellen und definieren, bei dem ein PowerShell-Skript in SQL Server ausgeführt wird.

Bevor Sie beginnen

Sicherheit

Ausführliche Informationen finden Sie unter Implementieren von SQL Server Agent Security.

Wir hören Ihnen zu: Wenn Sie in diesem Artikel – beispielsweise in einem Schritt oder Codebeispiel – veraltete oder falsche Informationen finden, lassen Sie es uns bitte wissen. Sie können unten auf dieser Seite im Abschnitt Feedback auf die Schaltfläche Diese Seite klicken. Wir lesen jedes Feedback zu SQL in der Regel am nächsten Tag. Danke.

Verwendung von SQL Server Management Studio

So erstellen Sie einen PowerShell-Skript-Auftragsschritt

  1. Im Objekt-Explorer stellen Sie eine Verbindung zu einer Instanz der SQL Server-Datenbank-Engine her, und dann erweitern Sie diese Instanz.

  2. 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.

  3. Klicken Sie im Dialogfeld Auftragseigenschaften auf die Seite Schritte und dann auf Neu.

  4. Geben Sie im Dialogfeld Neuen Auftragsschritt einen Schrittnamen für den Auftrag ein.

  5. Klicken Sie in der Liste Typ auf PowerShell.

  6. Wählen Sie in der Liste Ausführen als das Proxykonto mit den Anmeldeinformationen aus, die der Auftrag verwendet.

  7. 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 mit der Skriptsyntax aus. Ein Beispiel für ein PowerShell-Skript finden Sie unten unter Verwendung von Transact-SQL .

  8. Klicken Sie auf die Seite Advanced, um die folgenden Auftragsschrittoptionen festzulegen: Welche Aktion ausgeführt werden soll, wenn der Auftragsschritt erfolgreich ist oder fehlschlägt, wie oft der SQL Server-Agent versuchen sollte, den Auftragsschritt auszuführen, und wie oft Wiederholungsversuche durchgeführt werden sollen.

Verwenden von Transact-SQL

So erstellen Sie einen PowerShell-Skript-Auftragsschritt

  1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Datenbank-Engine-Instanz her.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

  3. Kopieren Sie das folgende Beispiel, fügen Sie es in das Abfragefenster ein, und klicken Sie auf Ausführen.

    -- creates a PowerShell job step that finds the processes
    -- that use more than 1000 MB of memory and kills them  
    USE msdb;  
    GO  
    EXEC sp_add_jobstep  
        @job_name = N'Weekly Sales Data Backup',  
        @step_name = N'Kills all processes that use more than 1000 MB of memory',  
        @subsystem = N'PowerShell',  
        @command = N'Get-Process | Where-Object { $_.WS -gt 1000MB } | Stop-Process',   
        @retry_attempts = 5,  
        @retry_interval = 5 ;  
    GO  
    

Weitere Informationen finden Sie unter sp_add_jobstep (Transact-SQL).

Verwenden von SQL Server-Verwaltungsobjekten

So erstellen Sie einen PowerShell-Skript-Auftragsschritt

Verwenden Sie die JobStep Klasse mithilfe einer von Ihnen ausgewählten Programmiersprache, z. B. Visual Basic, Visual C# oder PowerShell.