PowerShell on Windows 7: Set-ExecutionPolicy for regular users

126,008

Solution 1

If you (or a helpful admin) runs Set-ExecutionPolicy as administrator, the policy will be set for all users. (I would suggest "remoteSigned" rather than "unrestricted" as a safety measure.)

NB.: On a 64-bit OS you need to run Set-ExecutionPolicy for 32-bit and 64-bit PowerShell separately.

Solution 2

Set-ExecutionPolicy RemoteSigned -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). This is useful if you don't have administrative control over the computer.

RemoteSigned is a safer execution policy than Unrestricted. If you download a script and RemoteSigned is preventing you from executing it, then after vetting the script, remove the restriction by opening the file's properties and flagging "Unblock". If this is infeasible, then you can set the policy to Unrestricted instead.

Solution 3

This should solve your problem, you should try to run the following below:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser 

Solution 4

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Run this command through PowerShell. It works for me hope it will work for you also :)

Share:
126,008
Dan Vinton
Author by

Dan Vinton

Updated on August 11, 2021

Comments

  • Dan Vinton
    Dan Vinton almost 3 years

    I want to run PowerShell scripts on Windows 7 as a regular user. Whenever I try, I get the following error:

    File C:\Users\danv\Documents\WindowsPowerShell\profile.ps1 cannot be loaded because the
    execution of scripts is disabled on this system. Please see "get-help about_signing" for
    more details.
    At line:1 char:2
    + . <<<<  'C:\Users\danv\Documents\WindowsPowerShell\profile.ps1'
        + CategoryInfo          : NotSpecified: (:) [], PSSecurityException
        + FullyQualifiedErrorId : RuntimeException
    

    Attempting to solve via Set-ExecutionPolicy Unrestricted fails:

    PS C:\Users\danv> Set-ExecutionPolicy Unrestricted
    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 <<<<  Unrestricted
        + CategoryInfo          : NotSpecified: (:) [Set-ExecutionPolicy], UnauthorizedAccessException
        + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.SetExecutionPolicyCommand
    

    I can run the Set-ExecutionPolicy Unrestricted command as administrator, but this doesn't seem to propagate to non-administrator users.

    How can I successfully run scripts as a non-administrator?

  • Dan Vinton
    Dan Vinton over 13 years
    I've tried this - setting things to Unrestricted as Administrator doesn't seem to change anything for the non-administrator...
  • Richard
    Richard over 13 years
    @DanVinton: Then something else is happening. Suggest setting as admin again, then checking Get-ExecutionPolicy from both admin and normal shells. It is possible Group Policy is overruling your wishes.
  • Dan Vinton
    Dan Vinton over 13 years
    In the usual IT fashion, having someone (proverbially) looking over your shoulder has resolved it... thanks!
  • Darek
    Darek about 11 years
    One comment for 64-bit Windows 8, you must execute it from an elevated PowerShell window like so: Set-ExecutionPolicy RemoteSigned -Force followed by start-job { Set-ExecutionPolicy RemoteSigned -Force } -RunAs32. That's the only way to ensure that both versions are addressed.
  • pepoluan
    pepoluan almost 11 years
    Thanks, @Darek ! I am close to tearing my hair out due to ExecutionPolicy returning to AllSigned every time. Not it finally sticks, yay!
  • Charles Clayton
    Charles Clayton almost 10 years
    Perfect. This solved my problem immediately. It's sort of frustrating for new users that powershell is advertised as a scripting languague that by default disallows scripting.
  • Peter Mortensen
    Peter Mortensen over 9 years
    "Unrestricted"? Be aware of the security implications.
  • repleeka
    repleeka about 3 years
    This Set-ExecutionPolicy Unrestricted -Scope CurrentUser command solved my problem.❤