Como executo um powershell com um formulário do Windows no logon / inicialização?

1

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

    
por Ben 26.06.2010 / 00:23

4 respostas

3

Use

powershell -File c:\scripts\myscript.ps1

em vez disso.

    
por 26.06.2010 / 10:10
2

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" 

Powershell.exe - Passando argumentos de comando com espaços

    
por 10.11.2010 / 16:02
0

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'"
    
por 26.06.2010 / 06:47
-2

Você deve fazer isso com um script de inicialização no GPO.

    
por 26.06.2010 / 03:12