Altere a Política de Execução do Powershell silenciosamente do script Batch

2

Gostaria de receber ajuda para definir um valor de registro para o PowerShell. O caminho é

[hkey_local_machine\system32\windows\microsoft\powershell\shellids\microsoft.powershell] "Path"="c:\windows\system32\windowspowershell\v1.0\powershell.exe" "ExecutionPolicy"="unrestricted"

Como eu importei isso de uma máquina boa conhecida, quando executo o arquivo .reg ele funciona bem. Mas eu gostaria disso em um arquivo de lote.

Quando eu chamar manualmente o prompt de comando, solte o caminho, por exemplo, c:\powershell.reg , isso importa os valores e substitui as configurações do registro conforme necessário.  No entanto, se eu fizer a mesma coisa em um arquivo de lote, os valores não serão alterados no registro Usando o comando reg add em um arquivo em lote, os valores não funcionam.

    
por Papoli 31.03.2015 / 08:56

2 respostas

6

Por que não simplesmente executar o seguinte via CMD

powershell -command "& {Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force}"

ou isso diretamente no Powershell (é para isso que o comando serve, afinal):

Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force
    
por 31.03.2015 / 16:03
1

Como altero a política de execução do Powershell silenciosamente de um script em lote?

Aviso:

As instruções abaixo contêm etapas que informam sobre como modificar o registro. No entanto, podem ocorrer sérios problemas se você modificar o registro incorretamente.

Portanto, certifique-se de seguir estas etapas cuidadosamente. Para proteção adicional, faça o backup do registro antes de modificá-lo. Em seguida, você pode restaurar o registro se ocorrer um problema.

Para obter mais informações, consulte Como fazer backup e restaurar o registro no Windows.

reg solution

@echo off
reg add HKLM\system32\windows\microsoft\powershell\shellids\microsoft.powershell /v "Path" /d "c:\windows\system32\windowspowershell\v1.0\powershell.exe"
reg add HKLM\system32\windows\microsoft\powershell\shellids\microsoft.powershell /v "ExecutionPolicy" /d "unrestricted"

regedit solution

@echo off
regedit /s file.reg

Em que file.reg contém o seguinte:

[hkey_local_machine\system32\windows\microsoft\powershell\shellids\microsoft.powershell] 
"Path"="c:\windows\system32\windowspowershell\v1.0\powershell.exe"
"ExecutionPolicy"="unrestricted"

Nota:

  • [/s|-s]

    Quando um nome de arquivo é especificado na linha de comando, essa opção é usada para suprimir todas as caixas de diálogo informativas que normalmente seriam exibidas. Isso é útil quando o programa de instalação de um aplicativo deseja executar REGEDIT.EXE com um arquivo .REG, mas não deseja que o usuário fique confuso com as caixas de diálogo exibidas.

Outras leituras

  • Um índice A-Z da linha de comando do Windows CMD - Uma excelente referência para todas as coisas relacionadas à linha do Windows cmd.
  • reg - Leia, defina ou exclua chaves e valores do Registro, salve e restaure a partir de um arquivo .REG.
  • regedit - Importe, exporte ou exclua as configurações do Registro de um arquivo de texto (.REG).
  • regedit - Opções de linha de comando.
por 31.03.2015 / 09:20