我以管理员身份运行 Windows Server 2008,并尝试将 ExecutionPolicy 设置为 PowerShell v2 的 Remotesigned,如下所示:
Set-ExecutionPolicy RemoteSigned
但是我收到了这个错误:
Set-ExecutionPolicy : Access to the registry key 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft
.PowerShell' is denied.
At line:1 char:20
+ Set-ExecutionPolicy <<<< RemoteSigned
+ CategoryInfo : NotSpecified: (:) [Set-ExecutionPolicy], UnauthorizedAccessException
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.SetExecutionPolicyComma
nd
如何解决这个问题?
答案1
右键单击 Powershell 快捷方式并选择“以管理员身份运行”
答案2
Stephen Jennings 回复同样的问题在 StackOverflow 上:
Set-ExecutionPolicy Unrestricted -Scope CurrentUser
这将为当前用户(存储在 HKEY_CURRENT_USER 中)而不是本地机器(HKEY_LOCAL_MACHINE)设置执行策略。
答案3
如果“以管理员身份运行”对您不起作用(一开始对我来说不起作用)或者您想要永久解决方案,我找到了一种解决方法,即直接将权限添加到 Windows 注册表中。执行此操作后,当我调用 get-ExecutionPolicy 时,它不再受到限制。
它相当于 set-ExecutionPolicy RemoteSigned,并且确实可以工作。
在这里写道: http://kyleclegg.com/powershell/
希望这可以帮助。
答案4
我发现,对我而言,解决此错误的唯一方法是运行 regedt32 并深入到该密钥,然后将用户权限从读取更改为完全控制。服务器上的本地权限优先于域管理员权限。