我以pipe理员身份运行Windows Server 2008,并试图将ExecutionPolicy设置为Remotesigned for PowerShell v2,如下所示:
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
如何解决这个问题?
右键单击Powershell快捷方式,然后select“以pipe理员身份运行”
斯蒂芬·詹宁斯在StackOverflow上回答同样的问题 :
Set-ExecutionPolicy Unrestricted -Scope CurrentUser
这将为当前用户(存储在HKEY_CURRENT_USER)而不是本地计算机(HKEY_LOCAL_MACHINE)设置执行策略。
如果“以pipe理员身份运行”不适用于您(一开始不适用于我),或者如果您想要一个永久的解决scheme,我发现通过直接添加到Windowsregistry的权限修复。 当我调用get-ExecutionPolicy时,不再受限制。
它相当于set-ExecutionPolicy RemoteSigned,它实际上工作。
写在这里: http : //kyleclegg.com/powershell/
希望这可以帮助。
我发现唯一解决这个错误的方法是运行regedt32并向下追溯到密钥,然后将用户的权限从读取更改为完全控制。 服务器上的本地权限优先于域pipe理员权限。