Há uma tarefa agendada em execução em um servidor de lote por meio do Agendador de Tarefas do Windows que, às vezes, se sobrepõe a outros trabalhos agendados no SQL Server Agent, causando problemas de CPU. Podemos resolver isso se pudermos fazer com que o SQL Server Agent execute o .exe no servidor remoto para garantir que os agendamentos nunca entrem em conflito.
Existe alguma maneira de fazer isso com o SQL Server Agent, talvez com um comando Powershell? Em caso afirmativo, você pode me dar os passos?
O .exe no servidor remoto é um importador de dados para SQL. É um .exe autônomo. Queremos que ele seja executado no servidor de lote para que não cause contenção de recursos no servidor de banco de dados. Estamos executando o SQL 2008 R2 Enterprise.
Por favor, deixe-me saber se alguma informação adicional é necessária para responder a esta pergunta.
Eu só fiz isso algumas vezes e há um bom tempo. Naquela época, eu usava o PSEXEC.EXE do Windows Internals. Você pode ler as instruções aqui:
http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
Para a execução remota do Powershell, houve uma discussão no StackOverflow que satisfez o questionador. Powershell é provavelmente o caminho a percorrer nos dias de hoje.
https://stackoverflow.com/questions/9535515/powershell-execute-remote-exe-with-command-line-arguments-on-remote-computer
Independentemente de como executar o trabalho remoto, você pode agendá-lo no processo do SQL Server Agent que executa os outros trabalhos. Se você acha que funcionaria para você, também pode definir o trabalho para ser executado em um período definido de 'ociosidade'. (Acho que não é isso que você deseja, mas pode examiná-lo na discussão do SQL Server Agent sobre agendamentos de agentes em http://technet.microsoft.com/en-us/library/ms189065.aspx .)