如何设置 ExecutionPolicy:访问注册表项被拒绝

如何设置 ExecutionPolicy:访问注册表项被拒绝

我以管理员身份运行 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 并深入到该密钥,然后将用户权限从读取更改为完全控制。服务器上的本地权限优先于域管理员权限。

相关内容