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

谢谢。

最佳答案

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

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

  • MachinePolicy UserPolicy 只能通过组策略设置。我认为 key 最终在 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

    关于security - powershell 在哪里保存 set-executionpolicy 设置?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12021438/

    10-13 04:20