Create a PowerShell Script Job StepCreate a PowerShell Script Job Step

In questo argomento vengono descritte le procedure per la creazione e la definizione di un passaggio di processo di SQL ServerSQL Server Agent mediante il quale viene eseguito uno script di PowerShell in SQL Server 2017SQL Server 2017 tramite SQL Server Management StudioSQL Server Management Studio o Transact-SQLTransact-SQL.This topic describes how to create and define a SQL ServerSQL Server Agent job step that executes a PowerShell script in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

Contenuto dell'argomentoIn This Topic

Prima di iniziareBefore You Begin

SecuritySecurity

Per informazioni dettagliate, vedere Implement SQL Server Agent Security.For detailed information, see Implement SQL Server Agent Security.

Utilizzo di SQL Server Management StudioUsing SQL Server Management Studio

Per creare un passaggio di processo di uno script di PowerShellTo create a PowerShell Script job step

  1. In Esplora oggetti connettersi a un'istanza del Motore di database di SQL ServerSQL Server Database Engineed espandere tale istanza.In Object Explorer, connect to an instance of the Motore di database di SQL ServerSQL Server Database Engine, and then expand that instance.

  2. Espandere SQL Server Agent, creare un nuovo processo oppure fare clic con il pulsante destro del mouse su un processo esistente e quindi scegliere Proprietà.Expand SQL Server Agent, create a new job or right-click an existing job, and then click Properties. Per ulteriori informazioni sulla creazione di un processo, vedere Creazione di processi.For more information on creating a job, see Creating Jobs.

  3. Nella finestra di dialogo Proprietà processo fare clic sulla pagina Passaggi e quindi su Nuovo.In the Job Properties dialog, click the Steps page, and then click New.

  4. Nella finestra di dialogo Nuovo passaggio di processo digitare il nome del passaggio del processo nella casella Nome passaggio.In the New Job Step dialog, type a job Step name.

  5. Scegliere PowerShell dall'elenco Tipo.In the Type list, click PowerShell.

  6. Nell'elenco Esegui come selezionare l'account proxy con le credenziali che verranno utilizzate dal processo.In the Run as list, select the proxy account with the credentials that the job will use.

  7. Nella casella Comando immettere la sintassi dello script di PowerShell che verrà eseguito per il passaggio di processo.In the Command box, enter the PowerShell script syntax that will be executed for the job step. In alternativa, è possibile fare clic su Apri e selezionare un file contenente la sintassi dello script.Alternately, click Open and select a file containing the script syntax. Per un esempio di script di PowerShell, vedere di seguito Utilizzo di Transact-SQL .For an example of a PowerShell script, see Using Transact-SQL below.

  8. Fare clic sulla pagina Avanzate per impostare le opzioni seguenti relative al passaggio di processo: l'azione da eseguire in caso di esito positivo o negativo del passaggio, il numero di tentativi di esecuzione del passaggio che devono essere effettuati da SQL ServerSQL Server Agent e gli intervalli tra tentativi successivi.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.

Utilizzo di Transact-SQLUsing Transact-SQL

Per creare un passaggio di processo di uno script di PowerShellTo create a PowerShell Script job step

  1. In Esplora oggetticonnettersi a un'istanza del Motore di databaseDatabase Engine.In Object Explorer, connect to an instance of Motore di databaseDatabase Engine.

  2. Sulla barra Standard fare clic su Nuova query.On the Standard bar, click New Query.

  3. Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.Copy and paste the following example into the query window and click Execute.

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

Per altre informazioni, vedere sp_add_jobstep (Transact-SQL).For more information, see sp_add_jobstep (Transact-SQL).

Utilizzo di SQL Server Management ObjectsUsing SQL Server Management Objects

Per creare un passaggio di processo di uno script di PowerShellTo create a PowerShell Script job step

Usare la classe JobStep tramite un linguaggio di programmazione come Visual Basic, Visual C# o PowerShell.Use the JobStep class by using a programming language that you choose, such as Visual Basic, Visual C#, or PowerShell.