24

I'm running Windows Server 2008 as admin and I tried to set ExecutionPolicy as Remotesigned for PowerShell v2 like this:

Set-ExecutionPolicy RemoteSigned

But I got this error:

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

How to fix this?

atricapilla
  • 615
  • 6
  • 12
  • 15

4 Answers4

24

Right click on Powershell shortcut and choose 'Run as Administrator'

user25572
  • 382
  • 2
  • 2
  • 5
    Also note that if you have a 64-bit OS you need to set the execution policy for both the 32-bit and 64-bit version of PowerShell. – Joey Mar 24 '10 at 16:27
  • 1
    You don't need to run it as admin, just run it with `-Scope CurrentUser` as Janus answer suggests – CharlesB Jan 20 '17 at 15:02
16

Stephen Jennings in reply to the same question on StackOverflow:

Set-ExecutionPolicy Unrestricted -Scope CurrentUser

This will set the execution policy for the current user (stored in HKEY_CURRENT_USER) rather than the local machine (HKEY_LOCAL_MACHINE).

Janus
  • 261
  • 2
  • 4
4

In case "Run as Administrator" doesn't work for you(didn't for me at first) or if you want a permanent solution, I found a fix by adding the permissions directly to the windows registry. After doing this when I called get-ExecutionPolicy it no longer came back restricted.

It's the equivalent of set-ExecutionPolicy RemoteSigned, with it actually working.

Wrote about it here: http://kyleclegg.com/powershell/

Hope this helps.

Kyle
  • 105
  • 2
Kyle
  • 41
  • 2
0

I found that the only solution to this error that worked for me was to run regedt32 & drill down to the key then change the permissions for users from read to full control. Local permissions on the server take precedent to the domain admin rights.