Task Scheduler - como executar o script powershell com vários parâmetros?

5

Estou usando o powershell.exe como o programa e " -Command "& C:\Windows\logon.ps1; exit $LASTEXITCODE"; ExecutionPolicy RemoteSigned " como o parâmetro, mas parece que não está funcionando.

Algumas coisas que eu gostaria:

  1. obtendo um resultado no agendador de tarefas para que eu possa saber se tudo funcionou bem ou se houve erros

  2. obtém a saída do script em um arquivo output.txt (o arquivo incremental é possível?)

  3. execute o script oculto

por FernandoSBS 22.05.2013 / 03:43

1 resposta

2

Não sei se você esqueceu o - na sua pergunta, mas é -ExecutionPolicy . Se esse script não estiver assinado, ele também não executará esse script. Você pode usar bypass como a executionpolicy para descartá-lo.

Eu duvido que você possa executar scripts e comandos um após o outro na linha de comando. Adicione o exit $LASTEXITCODE ao script e execute-o com o -File C:\script.ps1 .

Se por executar oculto você não quer dizer nenhuma janela do console, eu geralmente chamo meus scripts como

powershell.exe -noprofile -executionpolicy bypass -file C:\script.ps1

e nunca mais ver uma janela.

Para obter a saída do seu script em um arquivo, canalize seus comandos para Tee-Object

"Hello World" | Tee-Object C:\output.file

Você pode nomear o arquivo do jeito que quiser, implementar a lógica no script para que o nome do arquivo seja incrementado ou - meu favorito - use YYYYMMddhhmmss no nome do arquivo.

Atualizar

Além disso, retirado da Página de Technet da Microsoft no Powershell:

Script blocks must be enclosed in braces ({}). You can specify a script block only when running PowerShell.exe in Windows PowerShell. The results of the script are returned to the parent shell as deserialized XML objects, not live objects.

If the value of Command is a string, Command must be the last parameter in the command , because any characters typed after the command are interpreted as the command arguments.

    
por 06.06.2013 / 16:41