注册表值“绕过”时 PowerShell ExecutionPolicy 提示

注册表值“绕过”时 PowerShell ExecutionPolicy 提示

我需要运行无需用户输入的脚本。但最近我的脚本开始需要输入 ExecutionPolicy。

我之前已将所有范围的 ExecutionPolicy 设置 Set-ExecutionPolicy为“不受限制”。然而,这仍然需要用户输入。

我已手动设置了 ExecutionPolicy 的注册表项,bypass但它仍在所有范围内使用不受限制的设置。

它没有域名,因此不会从我们的 DC 中提取任何 GPO。

用于执行策略的本地 GPO allows all scripts

Set ExecutionPolicy -ExecutionPolicy bypass -Scope LocalMachine -Force我尝试使用导致错误的命令设置 ExecutionPolicy 以绕过setting is overridden by a policy defined at a more specific scope

然后我尝试了一下Set-ExecutionPolicy -ExecutionPolicy bypass -Scope MachinePolicy -Force,结果出现了错误

ExecutionPolicy must be set through Group Policy但正如提到的那样,它被设置为允许所有脚本。

我究竟做错了什么?

答案1

答案是通过Set-ItemProperty而不是通过 regedit 设置注册表。

我一运行这个命令, Set-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\PowerShell -Name ExecutionPolicy -Value ByPass它就正确显示了Get-ExecutionPolicy

除非存在大写问题,因为它被设置为“bypass”而不是“ByPass”

相关内容