![注册表值“绕过”时 PowerShell ExecutionPolicy 提示](https://linux22.com/image/792516/%E6%B3%A8%E5%86%8C%E8%A1%A8%E5%80%BC%E2%80%9C%E7%BB%95%E8%BF%87%E2%80%9D%E6%97%B6%20PowerShell%20ExecutionPolicy%20%E6%8F%90%E7%A4%BA.png)
我需要运行无需用户输入的脚本。但最近我的脚本开始需要输入 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”