PowerShell on Windows 7: Set-ExecutionPolicy for regular users
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 :)
Dan Vinton
Updated on August 11, 2021Comments
-
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 over 13 yearsI've tried this - setting things to
Unrestricted
as Administrator doesn't seem to change anything for the non-administrator... -
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 over 13 yearsIn the usual IT fashion, having someone (proverbially) looking over your shoulder has resolved it... thanks!
-
Darek about 11 yearsOne comment for 64-bit Windows 8, you must execute it from an elevated PowerShell window like so:
Set-ExecutionPolicy RemoteSigned -Force
followed bystart-job { Set-ExecutionPolicy RemoteSigned -Force } -RunAs32
. That's the only way to ensure that both versions are addressed. -
pepoluan almost 11 yearsThanks, @Darek ! I am close to tearing my hair out due to ExecutionPolicy returning to AllSigned every time. Not it finally sticks, yay!
-
Charles Clayton almost 10 yearsPerfect. 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 over 9 years"Unrestricted"? Be aware of the security implications.
-
repleeka about 3 yearsThis
Set-ExecutionPolicy Unrestricted -Scope CurrentUser
command solved my problem.❤