Skip to main content

Resolving PowerShell Execution Issue Due to Execution Policy

PowerShell scripts often fail to execute due to the system's execution policy. The execution policy is a safety feature that controls the conditions under which PowerShell loads configuration files and runs scripts. Here's how you can resolve this issue:

note

Sample Error Message: running scripts is disabled on this system. For more information, see about_Execution_Policies at https://go.microsoft.com/fwlink/?LinkID=135170.

Check Current Execution Policy

First, check your current execution policy. Open PowerShell and run the following command:

Get-ExecutionPolicy

Change Execution Policy

If the returned policy is Restricted, PowerShell prevents scripts from running. To change this, you can set the policy to Unrestricted, RemoteSigned, or Bypass.

Unrestricted: This policy allows all scripts to run.

Set-ExecutionPolicy Unrestricted

RemoteSigned: This policy allows scripts downloaded from the internet to run if they are signed by a trusted publisher.

Set-ExecutionPolicy RemoteSigned

Bypass: This policy allows all scripts to run, regardless of where they come from and whether they are signed.

Set-ExecutionPolicy Bypass
caution

Changing the execution policy might expose your system to risks. Understand the implications of each policy before changing it.

Run Script with Policy Change

If you don't want to change the system-wide policy, you can run your script with a temporary policy change:

powershell -ExecutionPolicy Bypass -File script.ps1

This command runs script.ps1 with the Bypass policy, regardless of the system's execution policy.

You can also change the execution policy for a particular scope (CurrentUser, LocalMachine, etc.):

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

This command changes the execution policy for the current user only.

Remember to always run PowerShell as an administrator when changing the execution policy.