Windows PowerShell Set-ExecutionPolicy
It comes as a shock to realize that by default, and by design, PowerShell code just won’t execute because of security concerns. Fortunately you can change this behavior easily with Set-ExecutionPolicy.
Set-ExecutionPolicy Topics
- Start With Get-ExecutionPolicy
- Execution Policy Values
- Set-ExecutionPolicy
- Troubleshooting Set-ExecutionPolicy
♣
PowerShell Pre-requisites and Checklist
In the case of Windows 7 and later, you don’t need to download any extra files, just: ‘Add Feature’ –> Windows PowerShell. However, for older operating systems, there are different versions of PowerShell for XP, Windows Server 2003 and Vista. For such legacy systems only, you need to download PowerShell from Microsoft’s site.
Once you have installed PowerShell 2.0 or later, I recommend choosing the ISE (Integrated Scripting Engine) version, it will save buying a text editor.
A Quick Look at Get-ExecutionPolicy
I like experiments. Get-Execution allows us to take a snapshot before we make any changes with ‘Set’. My other reason for introducing ‘Get’ is to help with troubleshooting why scripts are or are not working.
# PowerShell Check Scripts
Clear-Host
Get-ExecutionPolicy
PowerShell Execution Policy Values
Restricted (Default)
RemoteSigned (Guy’s favourite. Local scripts OK)
Unrestricted (Gung-ho setting, useful for testing)
AllSigned (Secure but a pain to setup)
Bypass (Never used)
Undefined (Tricky setting)
Set-ExecutionPolicy
Not only is this a job that needs doing so that all your other PowerShell scripts work, but also changing the script execution behaviour gives you valuable experience with the ‘Set’ verb.
# PowerShell Set Script Behaviour
Clear-Host
Set-ExecutionPolicy RemoteSigned
Note : Because all that you get is the message below, you may wish to append this line:
Get-ExecutionPolicy
Recommended: Solarwinds’ Permissions Analyzer – Free Active Directory Tool
I like the Permissions Monitor because it enables me to see WHO has permissions to do WHAT at a glance. When you launch this tool it analyzes a users effective NTFS permissions for a specific file or folder, and takes into account network share access, then displays the results in a nifty desktop dashboard!
Think of all the frustration that this free SolarWinds utility saves when you are troubleshooting authorization problems for user’s access to a resource. Give this permissions monitor a try – it’s free!
Download SolarWinds’ Free Permissions Analyser – Active Directory Tool
Researching Set-ExecutionPolicy
These simple mini PowerShell tutorials will help you to use Get and Set-Executionpolicy to find out where your scripts fail to run.
Help With Set-ExecutionPolicy Parameters
# PowerShell Set-ExecutionPolicy Parameters
Clear-Host
Get-Help Set-ExecutionPolicy
Checking the help file may reveal useful parameters, for instance -List may help with troubleshooting, see more below.
Troubleshooting Set-ExecutionPolicy
While you do all of the above and configure Set-ExecutionPolicy scripts may still not run because of Group Policy restrictions. Here are the factors to consider:
Computer Group Policy > User Group Policy > Process (session) execution policy > User execution policy > Computer execution policy.
# PowerShell Set-ExecutionPolicy List
Clear-Host
Get-Help Set-ExecutionPolicy -List
Typical Results From Listing ExecutionPolicies
Scope ExecutionPolicy
—– —————
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser RemoteSigned
LocalMachine RemoteSigned
Summary of Get-ExecutionPolicy
Having to adjust Get-ExecutionPolicy is the price we pay for security, administrator must be allowed to turn off PowerShell code to stop hackers or their viruses gaining control. Set-ExecutionPolicy tackles the specific problem that your PowerShell script will not run. Fortunately if you don’t like this behavior you can change it easily with Set-ExecutionPolicy.
If you like this page then please share it with your friends
See more Windows PowerShell tutorials
• PShell Home • Introduction • Dreams • 3 Key Commands • PowerShell Help About • Get-Help
• PowerShell v 3.0 • Set-ExecutionPolicy • Get-Command • Cmdlet scripts • Import-Module
• PowerShell Version Check • Backtick • PowerShell examples • PowerShell ISE • Get-Member
Please email me if you have a better example script. Also please report any factual mistakes, grammatical errors or broken links, I will be happy to correct the fault.