Esecuzione di passaggi di Windows PowerShell in SQL Server AgentRun Windows PowerShell Steps in SQL Server Agent

Utilizzare SQL Server Agent per eseguire script di SQL Server PowerShell a orari pianificati.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

Prima di iniziareBefore You Begin

Sono disponibili molti tipi di passaggi del processo di SQL ServerSQL Server Agent.There are several types of SQL ServerSQL Server Agent job steps. Ogni tipo è associato a un sottosistema che implementa un ambiente specifico, ad esempio un agente di replica o un ambiente del prompt dei comandi.Each type is associated with a subsystem that implements a specific environment, such as a replication agent or command prompt environment. È possibile codificare gli script di Windows PowerShell, quindi utilizzare SQL ServerSQL Server Agent per includere gli script nei processi eseguiti in base a orari pianificati o in risposta a eventi di SQL ServerSQL Server .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. È possibile eseguire gli script di Windows PowerShell con un passaggio del processo del prompt dei comandi o di PowerShell.Windows PowerShell scripts can be run using either a command prompt job step or a PowerShell job step.

  1. Usare un passaggio del processo di PowerShell per fare in modo che il sottosistema SQL ServerSQL Server Agent esegua l'utilità sqlps , che avvia PowerShell e importa il modulo sqlps .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. Usare un passaggio del processo del prompt dei comandi per eseguire PowerShell.exe e specificare uno script che importa il modulo sqlps .Use a command prompt job step to run PowerShell.exe, and specify a script that imports the sqlps module.

Limitazioni e restrizioni Limitations and Restrictions

Attenzione

Ogni passaggio del processo di SQL ServerSQL Server Agent che esegue PowerShell con il modulo sqlps avvia un processo che utilizza all'incirca 20 MB di memoria.Each SQL ServerSQL Server Agent job step that runs PowerShell with the sqlps module launches a process which consumes approximately 20 MB of memory. L'esecuzione simultanea di numerosi passaggi del processo di Windows PowerShell può avere un impatto negativo sulle prestazioni.Running large numbers of concurrent Windows PowerShell job steps can adversely impact performance.

Creare un passaggio del processo di PowerShell Create a PowerShell Job Step

Per creare un passaggio del processo di PowerShellTo create a PowerShell job step

  1. 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 about creating a job, see Creating Jobs.

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

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

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

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

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

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

Creare un passaggio del processo del prompt dei comandi Create a Command Prompt Job Step

Per creare un passaggio del processo di CmdExecTo create a CmdExec job step

  1. 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 about creating a job, see Creating Jobs.

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

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

  4. Nell'elenco Tipo selezionare Sistema operativo (CmdExec).In the Type list, choose Operating system (CmdExec).

  5. Nell'elenco Esegui come selezionare l'account proxy con le credenziali che verranno utilizzate dal processo.In Run as list, select the proxy account with the credentials that the job will use. Per impostazione predefinita, questi passaggi di processo vengono eseguiti nel contesto dell'account di servizio SQL Server Agent.By default, CmdExec job steps run under the context of the SQL Server Agent service account.

  6. Nella casella Elabora codice di uscita di un comando eseguito correttamente digitare un valore compreso tra 0 e 999999.In the Process exit code of a successful command box, enter a value from 0 to 999999.

  7. Nella casella Comando , immettere powershell.exe con parametri che specificano lo script di PowerShell da eseguire.In the Command box, enter powershell.exe with parameters specifying the PowerShell script to be run.

  8. Fare clic sulla pagina Avanzate per impostare le opzioni relative ai passaggi di processo, ad esempio l'operazione da eseguire se il passaggio di processo ha esito positivo o negativo, il numero di tentativi che devono essere eseguiti da SQL ServerSQL Server Agent per l'esecuzione del passaggio di processo e il file in cui SQL ServerSQL Server Agent può scrivere l'output del passaggio di processo.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. Solo i membri del ruolo predefinito del server sysadmin possono scrivere l'output dei passaggi di processo in un file di sistema operativo.Only members of the sysadmin fixed server role can write job step output to an operating system file.

Vedere ancheSee Also

SQL Server PowerShellSQL Server PowerShell