Skip to main content

Set PowerShell Execution Policy

Summary

This script enforces PowerShell execution policy across the entire machine by directly updating the registry for both 32-bit and 64-bit environments.

Sample Run

User Parameters

NameExampleAccepted ValuesRequiredDefaultTypeDescription
PolicyRemoteSignedUnrestricted, RemoteSigned, AllSigned, Restricted, Default, Bypass, UndefinedFalseRemoteSignedTextSpecify PowerShell execution policy to apply on the system. By default, the script applies RemoteSigned to the system. Below are descriptions of each accepted value.
- Unrestricted : All scripts run, warning for downloaded ones
- RemoteSigned : Local scripts run, downloaded scripts must be signed
- AllSigned : All scripts must be digitally signed
- Restricted : No scripts allowed (default on many systems)
- Default : Resets to system default
- Bypass : No restrictions, no warnings
- Undefined : Removes the policy (falls back to another scope)

Task Creation

Script Details

Step 1

Navigate to AutomationTasks
step1

Step 2

Create a new Script Editor style task by choosing the Script Editor option from the Add dropdown menu
step2

The New Script page will appear on clicking the Script Editor button:
step3

Step 3

Fill in the following details in the Description section:

Name: Set PowerShell Execution Policy
Description: It enforces a PowerShell execution policy across the entire machine by directly updating the registry for both 32-bit and 64-bit environments
Category: Custom

Image

Parameters

Locate the Add Parameter button on the right-hand side of the screen and click on it to create a new parameter.
AddParameter

The Add New Script Parameter page will appear on clicking the Add Parameter button.
AddNewScriptParameter

  • Set Policy in the Parameter Name field.
  • Select Text String from the Parameter Type dropdown menu.
  • Set RemoteSigned as Default Value
  • Click the Save button.

Image

Script Editor

Click the Add Row button in the Script Editor section to start creating the script
AddRow

A blank function will appear:
BlankFunction

Row 1 Function: PowerShell Script

Search and select the PowerShell Script function.

PowerShell Function Selected

The following function will pop up on the screen:
PowerShell Function Example

Paste in the following PowerShell script and set the Expected time of script execution in seconds to 600 seconds. Click the Save button.

<#
.SYNOPSIS
Sets the PowerShell Execution Policy at the LocalMachine scope.

.DESCRIPTION
Validates the provided execution policy and applies it by updating
the registry for both 64-bit and 32-bit PowerShell environments.

.PARAMETER Policy
The execution policy to set. Valid values:
Unrestricted, RemoteSigned, AllSigned, Restricted,
Default, Bypass, Undefined


#>

$Policy = '@Policy@'
if ($Policy -notin ('Unrestricted', 'RemoteSigned', 'AllSigned', 'Restricted', 'Default', 'Bypass', 'Undefined')) {
throw "Invalid execution policy: '$Policy'. Valid values are: Unrestricted, RemoteSigned, AllSigned, Restricted, Default, Bypass, Undefined."
}


Write-Output "Starting Execution Policy configuration..."


try {
Write-Output "Setting PowerShell ExecutionPolicy to '$Policy'..."

$paths = @(
"HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell",
"HKLM:\SOFTWARE\Wow6432Node\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell"
)

foreach ($path in $paths) {
if (-not (Test-Path $path)) {
New-Item -Path $path -Force | Out-Null
}

New-ItemProperty -Path $path `
-Name "ExecutionPolicy" `
-Value $Policy `
-PropertyType String `
-Force | Out-Null
}

Write-Output "Successful"
}
catch {
Write-Error "Unsuccessful: $($_.Exception.Message)"
return
}

Image

Row 2 Function: Script Log

Add a new row by clicking the Add Row button.
Add Row

A blank function will appear.
Blank Function

Search and select the Script Log function.
Script Log Search

In the script log message, simply type %output% and click the Save button.
Script Log Save

Save Task

Click the Save button at the top-right corner of the screen to save the script.
SaveButton

Completed Task

Image

Output

  • Script Logs

Changelog

2026-03-24

  • Initial version of the document