Setting the PowerShell Execution Policy


By:   |   Updated: 2012-05-22   |   Comments (3)   |   Related: More > 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:

File C:\scripts\regSvr.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: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.

get-executionpolicy

PowerShell Console

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.

get-help set-executionpolicy

getHelpSetExecutionPolicy PowerShell

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.

set-executionpolicy unrestricted

PowerShell Access Denied Errors

You can set the execution policy as per your requirement as shown below.

set-executionpolicy unrestricted
get-executionpolicy

--or
set-executionpolicy remotesigned
get-executionpolicy

PowerShell Set-Execution Policy Example
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


Last Updated: 2012-05-22


get scripts

next tip button



About the author
MSSQLTips author Jugal Shah Jugal Shah has 8+ years of extensive SQL Server experience and has worked on SQL Server 2000, 2005, 2008 and 2008 R2.

View all my tips
Related Resources





Comments For This Article




Thursday, March 07, 2019 - 4:08:09 AM - Luke Back To Top

 Great help here!

All makes sense now, thanks a lot


Tuesday, April 10, 2018 - 9:13:32 AM - Vishpravasi Back To Top

 

 

 

 

I am not able to fix the issue help me please

 


Monday, March 04, 2013 - 7:05:22 PM - Dariusz Fabicki Back To Top

Best :)



download


Recommended Reading

How to find a specific text string in a SQL Server Stored Procedure, Function, View or Trigger

Using PowerShell to Work with Directories and Files

Execute SQL Server Stored Procedures from PowerShell

Bulk Copy Data from Oracle to SQL Server

Extract and convert all Excel worksheets into CSV files using PowerShell





get free sql tips
agree to terms


Learn more about SQL Server tools