powershell在哪里保存set-executionpolicy设置?

时间:2012-08-18 19:05:05

标签: security powershell

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

感谢。

2 个答案:

答案 0 :(得分:6)

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

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

  • MachinePolicy UserPolicy 只能通过组策略设置。我认为密钥最终会在HKLM\Software\Policies\Microsoft\Windows\Powershell
  • 之下
  • 进程似乎未存储在注册表项中。这是有道理的,因为它只应用当前的过程。可能只是存储在内存中。
  • 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

答案 1 :(得分:2)

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