Execution Policy Override

by Dec 18, 2017

If PowerShell won’t let you run a script, you may have to enable script execution first, for example like this:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass -Force 

This won’t work when execution policy was defined at GPO level, because GPO settings always have a higher precedence:

 PS C:\> Get-ExecutionPolicy -List Scope ExecutionPolicy ----- --------------- MachinePolicy Restricted UserPolicy Undefined Process Bypass CurrentUser Bypass LocalMachine Undefined 

In this case, you can replace the internal PowerShell authorization manager with a fresh one. Once you run the code below, PowerShell will always execute scripts in that particular session:

$context = $executioncontext.gettype().getfield('_context','nonpublic,instance').getvalue($executioncontext); $field = $context.gettype().getfield('_authorizationManager','nonpublic,instance'); $field.setvalue($context,(new-object management.automation.authorizationmanager 'Microsoft.PowerShell')) 

Twitter This Tip! ReTweet this Tip!