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.