【问题标题】:Where does powershell saves the set-executionpolicy setting?powershell 在哪里保存 set-executionpolicy 设置?
【发布时间】:2012-08-18 19:05:05
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: security powershell


    【解决方案1】:

    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

    【讨论】:

    • 正确,除了 MachinePolicy 最终改变了 HKLM 注册表分支的有效设置,UserPolicy 改变了 HKCU 分支。这实际上适用于计算机和用户之间不同的任何策略。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-07-08
      • 2021-06-26
      • 1970-01-01
      • 2011-10-08
      • 2013-06-19
      • 2018-01-23
      • 2023-03-20
      • 2011-06-06
      • 2011-07-08
      相关资源
      最近更新 更多