By: Jugal Shah | Comments (4) | Related: > PowerShell
Problem
Recently I moved PowerShell script files to a production environment and when executing it from the command prompt, I got this error: "File cannot be loaded because the execution of scripts is disabled on this system. Please see "get-help about_signing" for more details". In this tip we cover what needs to be done to resolve this issue.
Solution
There are situations when you are executing a PowerShell script and it will give you the below error message:
At line:1 char:19
+ c:\scripts\regSvr.ps1 <<<<
The reason for the above error is a security setting built into Windows PowerShell called "execution policy". Execution Policy determines how (or if) PowerShell runs scripts. By default, PowerShell's execution policy is set to Restricted; this means that scripts will not run.
You can verify the execution policy setting by using the Get-ExecutionPolicy PowerShell command as shown below.
![PowerShell Console](/tipimages2/2702_PSExecutionPolicy.jpg)
You can change the PowerShell script execution behavior using "Set-ExecutionPolicy". The Set-ExecutionPolicy cmdlet enables you to determine which Windows PowerShell scripts will be allowed to run on your computer.
Windows PowerShell has four different execution policies:
- Restricted - No scripts can be run. Windows PowerShell can be used only in interactive mode.
- AllSigned - Only scripts signed by a trusted publisher can be run.
- RemoteSigned - Downloaded scripts must be signed by a trusted publisher before they can be run.
- Unrestricted - No restrictions; all scripts can be run.
To get more information on Set-ExecutionPolicy, type "Get-Help Set-ExecutionPolicy" as shown below.
![getHelpSetExecutionPolicy PowerShell](/tipimages2/2702_getHelpSetExecutionPolicy.jpg)
To execute the Set-ExecutionPolicy command, you must have administrator permission and for Windows Vista / Windows Server 2008 and later versions you have to open the PowerShell command prompt with Run As Administrator. Otherwise you will get the below error.
![PowerShell Access Denied Errors](/tipimages2/2702_pserror.jpg)
You can set the execution policy as per your requirement as shown below.
get-executionpolicy
--or
set-executionpolicy remotesigned
get-executionpolicy
![PowerShell Set-Execution Policy Example](/tipimages2/2702_PsExample.jpg)
Next Steps
- Check your different PowerShell environments for the current execution policy that is in place.
- Set the execution policy as per your need for each system
- Review these other PowerShell tips
About the author
![MSSQLTips author Jugal Shah](/images/Jugal-Shah.png)
This author pledges the content of this article is based on professional experience and not AI generated.
View all my tips