Executar etapas do Windows PowerShell no SQL Server Agent
Aplica-se a: SQL Server Banco de Dados SQL do Azure Azure Synapse Analytics PDW (Analytics Platform System)
Use o SQL Server Agent para executar scripts do SQL Server PowerShell nas horas agendadas.
Observação
Há dois módulos do SQL Server PowerShell; SqlServer e SQLPS.
O módulo SqlServer é o módulo atual do PowerShell a ser usado.
O módulo SQLPS está incluído na instalação do SQL Server (para compatibilidade com versões anteriores), mas não está mais sendo atualizado.
O módulo do SqlServer contém versões atualizadas dos cmdlets no SQLPS e inclui novos cmdlets para dar suporte aos recursos mais recentes do SQL.
Instale o módulo SqlServer da Galeria do PowerShell.
Para obter mais informações, confira SQL Server PowerShell.
Do SQL Server 2019 em diante, é possível desabilitar o SQLPS. Na primeira linha de uma etapa de trabalho do tipo PowerShell, você pode adicionar #NOSQLPS
, o que impede o SQL Agent de carregar automaticamente o módulo SQLPS. Agora seu trabalho do SQL Agent executará a versão do PowerShell instalada no computador e você poderá usar qualquer outro módulo do PowerShell desejado.
Para usar o módulo SqlServer na etapa de trabalho do SQL Agent, coloque esse código nas duas primeiras linhas do script.
#NOSQLPS
Import-Module -Name SqlServer
Executar o PowerShell no SQL Server Agent
Existem vários tipos de etapas de trabalho do SQL Server Agent. Cada tipo está associado a um subsistema que implementa um ambiente específico, como um agente de replicação ou ambiente de prompt de comando. Você pode codificar os scripts do Windows PowerShell e usar o SQL Server Agent para incluir os scripts em trabalhos que são executados em horários programados ou em resposta a eventos do SQL Server. Scripts do Windows PowerShell podem ser executados usando uma etapa de trabalho de prompt de comando ou uma etapa de trabalho do PowerShell.
Use uma etapa de trabalho do PowerShell para fazer com que o subsistema do SQL Server Agent execute o utilitário sqlps, que inicia o PowerShell e importa o módulo sqlps. Se você estiver executando o SQL Server 2019 ou posterior, recomendamos usar o módulo SqlServer na etapa de trabalho do SQL Agent.
Use uma etapa de trabalho de prompt de comando para executar o PowerShell.exe e especifique um script que importa o módulo sqlps .
Cuidado sobre o consumo de memória
Cada etapa de trabalho do SQL Server Agent que executa o PowerShell com o módulo sqlps inicia um processo que consome aproximadamente 20 MB de memória. A execução de um grande número de etapas de trabalho concorrentes do Windows PowerShell pode afetar o desempenho de forma negativa.
Criar uma etapa de trabalho do PowerShell
Criar uma etapa de trabalho do PowerShell
Expanda o SQL Server Agent, crie um novo trabalho ou clique com o botão direito do mouse em um trabalho existente e selecione Propriedades. Para obter mais informações sobre como criar um trabalho, consulte Criando trabalhos.
Na caixa de diálogo Propriedades do Trabalho, clique na página Etapas e selecione Nova.
Na caixa de diálogo Nova Etapa de Trabalho , digite o Nome da etapade trabalho.
Na lista Tipo, selecione PowerShell.
Na lista Executar como , selecione a conta proxy com as credenciais que o trabalho usará.
Na caixa Comando , digite a sintaxe do script PowerShell que será executada para a etapa de trabalho. Como alternativa, clique em Abrir e selecione um arquivo que contenha a sintaxe de script.
Clique na página Avançado para definir as seguintes opções de etapa de trabalho: a ação a tomar em caso de êxito ou falha da etapa, quantas vezes o SQL Server Agent deve ser executado para concluir a etapa com sucesso e com que frequência.
Criar uma etapa de trabalho de prompt de comando
Criar uma etapa de trabalho CmdExec
Expanda o SQL Server Agent, crie um novo trabalho ou clique com o botão direito do mouse em um trabalho existente e selecione Propriedades. Para obter mais informações sobre como criar um trabalho, consulte Criando trabalhos.
Na caixa de diálogo Propriedades do Trabalho, clique na página Etapas e selecione Nova.
Na caixa de diálogo Nova Etapa de Trabalho , digite o Nome da etapade trabalho.
Na lista Tipo , escolha Sistema operacional (CmdExec) .
Na lista Executar como , selecione a conta proxy com as credenciais que o trabalho usará. Por padrão, etapas de trabalho CmdExec são executadas no contexto da conta do serviço do SQL Server Agent .
Na caixa Código de saída do processo de um comando bem sucedido , insira um valor de 0 a 999999.
Na caixa Comando, digite comandos que começam com PowerShell.exe com parâmetros que especificam o script do PowerShell a ser executado. Esses exemplos são semelhantes à sintaxe para executar comandos do PowerShell em um prompt de comando do Windows. Consulte
PowerShell.exe -?
para ver todas as opções possíveis de sintaxe.- Exemplo 1: executa um cmdlet simples.
PowerShell.exe -Command "Get-Date"
- Exemplo 2: executa uma consulta por meio do SQLCmd.exe no servidor atual (o exemplo usa a substituição de token do SQL Agent).
PowerShell.exe -Command "sqlcmd.exe -S $(ESCAPE_NONE(SRVR)) -Q 'SELECT @@VERSION'"
- Exemplo 3: executa um script do PowerShell (usando
pwsh.exe
, o nome executável no PowerShell 7.0, que deve ser instalado no servidor). Observe que o caminho para o script é local para o servidor em que o SQL Agent está em execução.PWSH.exe -ExecutionPolicy RemoteSigned -File X:\MyScripts\script001.ps1
- Exemplo 1: executa um cmdlet simples.
Selecione a página Avançado para definir opções para a etapa de trabalho, como a ação a tomar em caso de êxito ou falha da etapa, quantas vezes o SQL Server Agent deve ser executado para concluir a etapa com sucesso e o arquivo onde o SQL Server Agent pode gravar a saída da etapa. Só membros da função de servidor fixa sysadmin podem gravar a saída de etapas de trabalho em um arquivo do sistema operacional.
Consulte Também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de