While trying to run a PowerShell script (.ps1 file), sometimes you can get the cannot be loaded because running scripts is disabled on this system message.
It is not an error but a security feature to prevent you from running any potentially harmful scripts. You can easily fix this issue by changing the execution policy for PowerShell scripts. Entering a single command should be enough.
- Cannot Be Loaded Because Running Scripts Is Disabled
- How to Fix Cannot Be Loaded Error
- Related Questions
- Group Policy or Registry level policy configuration, which has more priority?
The only reason this issue occurs is because of the PowerShell execution policy. It usually happens due to following reasons:
- You are running an unsigned PowerShell script.
- Execution policy is set to restrict all PowerShell scripts.
How to Fix Cannot Be Loaded Error
Here’s how you can make it possible to run the PowerShell script:
- Open the admin level terminal for Windows PowerShell or the IDE you are currently using.
- Enter Get-ExecutionPolicy. It shows the policy for
the current PowerShell session. You can also enter Get-ExecutionPolicy -List to list out the policies for all scopes.
- Change the execution policy for the scope you want.
- The command you need for this purpose is: Set-ExecutionPolicy -ExecutionPolicy <policy name> -Scope <scope>. See below to know the possible values for the policy name and scope.
- In general, we recommend using Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned, as it is more secure.
- If it doesn’t solve the issue, enter:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
If you have both 64-bit and 32-bit PowerShell, you must enter this command for both terminals. Their locations are:
- C:\Windows\System32\WindowsPowerShell\v1.0\Powershell.exe
- C:\Windows\SysWOW64\WindowsPowerShell\v1.0\Powershell.exe
Note: You can also set the RemoteSigned policy for the Current User by checking the option in Settings > Update & Security > For Developers > PowerShell.
Possible values for <policy name>:
- Restricted: Disallows running scripts.
- All Signed: Permits running signed scripts only
- RemoteSigned: Allows running all scripts from the local computer but only signed ones for scripts you download.
- Unrestricted: Permits running all scripts but warns before running external scripts
- Default/Undefined: Restricted for clients and RemoteSigned for servers.
- Bypass: Permits all scripts, and you get no warning.
Possible <scope> values:
- MachinePolicy: Group-level policy for all users
- UserPolicy: Group-level policy for the current user
- Process: Temporary policy for current PowerShell session
- CurrentUser: Registry policy configuration for the current user
- LocalMachine: Registry policy configuration for all users
Related Questions
Group Policy or Registry level policy configuration, which has more priority?
Your system applies the Group Policy settings to the registry periodically or during a sign-in. However, the system checks for the relevant configuration in the registry, not in the group policy.
So, group policy has more priority if you reboot your computer after setting the policy. Otherwise, the registry takes precedence.
I'm an electronics engineer, avid writer, and tech-enthusiast specializing in troubleshooting computer-related issues. I enjoy reading both fiction and non-fiction in diverse genres. Apart from that, I also have a habit of trying out most new games but never completing them.