Use
powershell -File c:\scripts\myscript.ps1
em vez disso.
Estou montando um powershell (rodando no Windows 7) que realiza algumas tarefas de configuração pós-imagem.
Ele usa formulários do Windows para obter alguma entrada do usuário e, em seguida, deve executar várias tarefas, dependendo de sua escolha.
Isso é executado antes que o computador esteja no domínio, portanto, os scripts de login não são bons.
Eu tentei adicionar powershell c:\scripts\myscript.ps1
a hklm\software\microsoft\windows\currentversion\run
, mas ele não é executado.
Eu também o adicionei como uma tarefa de inicialização (e logon) agendada, com "nível mais alto de privilégios" e sendo executado como um administrador de máquina.
Quando ele é executado como uma tarefa de inicialização, ele executa o primeiro bit do script (cria um arquivo de log, para que eu possa ver isso), mas nenhum formulário do Windows é exibido. Em vez disso, ele se comporta como se o usuário tivesse clicado em cancelar no formulário. A tarefa agendada informa com erro: 0x41301
. Um pouco de googling mostra que isso significa que o script ainda está rodando?
Alguém tem alguma sugestão sobre a melhor forma de conseguir isso?
Obrigado,
Ben
Use
powershell -File c:\scripts\myscript.ps1
em vez disso.
Como Goyuix disse que você deve usar o & - Chame o operador para passar um caminho com espaços.
powershell.exe -Command "& 'c:\path with space\script1.ps1' arg1"
O PowerShell.exe não usa um nome de script como argumento de linha de comando. Você precisa dizer para ele criar esse script para executá-lo:
PowerShell.exe "& 'c:\path with\spaces\script.ps1'"
Você deve fazer isso com um script de inicialização no GPO.