lança o script powershell do registro

3

Eu tenho um script PowerShell que eu quero executar no meu PC toda vez que eu fizer logon. Eu adicionei-o como um REG_SZ no meu usuário atual "run" chave, mas nunca executa.

Alterei a política de execução para "irrestrita", mas ainda não tive sorte.

O conteúdo do valor do registro é assim:

powershell.exe c:\path\myscript.ps1

Isso funciona no prompt de comando. Alguma idéia de por que ele não será executado a partir do registro?

Obrigado.

    
por Kieran Walsh 17.05.2011 / 12:16

4 respostas

2

Eu geralmente executo scripts do PowerShell dessa maneira:

powershell.exe -file c:\path\myscript.ps1

Para mais informações, execute isto a partir da linha de comando:

powershell.exe -help
    
por 17.05.2011 / 16:22
1

Hoje li sobre um script do PowerShell que continua após a reinicialização do computador. Para fazer isso, o criador de scripts grava automaticamente em sua chave de execução. Se você der uma olhada em este blogpost, você verá que ele apenas escreve o scriptname mais seus params para a chave de registro.

Eu não pude testá-lo ainda, mas se funcionou para ele, isso significa que você não adiciona "powershell.exe" na frente do scriptname.

    
por 11.07.2011 / 19:31
1

Ok, resolvi isso. Você precisa definir a política de execução como remotesigned e não "ignorar" como a Microsoft me disse. Para fazer isso, execute este comando no powershell:

set-executionpolicy remotesigned

Então este é o REG_SZ na minha chave de execução do registro

"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -file c:\path\myscript.ps1

Então, agora eu tenho um script PowerShell que inicia todos os meus programas usuais com uma lacuna entre eles, permitindo que eu comece a trabalhar na minha máquina imediatamente, sem a lentidão de cada aplicativo tentando abrir ao mesmo tempo.

Aqui está um pequeno trecho do meu arquivo * .PS1, como outros podem achar útil:

# Chrome Browser
Start-Sleep -s 20
& "C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chrome.exe"

# Outlook
Start-Sleep -s 10
& "c:\Program Files (x86)\Microsoft Office\Office14\OUTLOOK.EXE"

# Messenger
Start-Sleep -s 10
& "c:\Program Files (x86)\Windows Live\Messenger\msnmsgr.exe" /background

# Snagit
Start-Sleep -s 30
& "C:\Program Files (x86)\TechSmith\Snagit 10\Snagit32.exe" /i /h

# Evernote
Start-Sleep -s 60
& "C:\Program Files (x86)\Evernote\Evernote\EvernoteTray.exe"
    
por 24.08.2011 / 09:55
0

Se bem me lembro, você não pode executar um script powershell diretamente (como em um clique duplo), ele deve ser executado a partir da linha de comando. Talvez o Windows veja a execução do registro como executando diretamente. O que você poderia tentar (e eu estou fora de forma aqui) está chamando o script de um arquivo de lote e, em seguida, chamando o arquivo de lote do registro.

    
por 17.05.2011 / 15:20