4

我正在构建一些服务器,需要在它们上运行一些 powershell 脚本。但是,我需要在每台服务器Set-ExecutionPolicy -ExecutionPolicy remotesigned -Force上手动运行该命令。因为我无法在脚本中设置执行策略。我想知道 PowerShell 将执行策略设置保存在哪里,并想直接更改它。那可能吗?

谢谢。

4

2 回答 2

8

ExecutionPolicy 不是存储在单个位置的单个设置。ExecutionPolicy 有多个范围,每个范围的设置和存储方式都不同。运行Get-ExecutionPolicy -List以查看所有不同的范围。

在获取/设置不同的范围时,使用 ProcMon 监视正在读取/写入的键,我想出了这个列表:

  • MachinePolicyUserPolicy只能通过组策略设置。我认为钥匙最终在下面HKLM\Software\Policies\Microsoft\Windows\Powershell
  • 进程似乎没有存储在 reg 密钥中。这是有道理的,因为它仅适用于当前流程。可能只是存储在内存中。
  • CurrentUser存储在HKEY_CURRENT_USER\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell [ExecutionPolicy]注意您可以通过以下方式为特定用户(即除了当前用户)设置它HKEY_USERS
  • LocalMachine存储在HKLM\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell [ExecutionPolicy] 这是运行时的默认范围Set-ExecutionPolicy

请参阅http://technet.microsoft.com/en-US/library/dd347641.aspxhttp://go.microsoft.com/fwlink/?LinkID=113394

于 2012-08-19T01:30:53.977 回答
2

HKLM\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell 键名为 ExecutionPolicy(类型:REG_SZ)。在您的情况下,该值应该是 RemoteSigned。

于 2012-08-18T19:12:30.853 回答