Public mode

No access to your tenant or devices. Every item links to its source. What this means

Some sources or documents need attention: 258/260 feeds/APIs · 416/444 docs · checked 04:31 UTC Customize Public modeDiscuss ChangeIntel on Discord

Microsoft PowerToys Group Policy settings

81 settings · 0.101.2362.0 · 25 Aug 2026

Back to the list

Microsoft PowerToys › PowerToys Run

Configure enabled state for individual plugins

Computer and userIntune-readyPowerToysRunIndividualPluginEnabledState

Supported on PowerToys version 0.75.0 or later

What it does

With this policy you can configure an individual enabled state for each PowerToys Run plugin that you add to the list. If you enable this setting, you can define the list of plugins and their enabled states: - The value name (first column) is the plugin ID. You will find it in the plugin.json file which is located in the plugin folder. - The value (second column) is a numeric value: 0 for disabled, 1 for enabled and 2 for user takes control. - Example to disable the Program plugin: 791FC278BA414111B8D1886DFE447410 | 0 If you disable or don't configure this policy, either the user or the policy "Configure enabled state for all plugins" takes control over the enabled state of the plugins. You can set the enabled state for all plugins not configured by this policy using the policy "Configure enabled state for all plugins". Note: Changes require a restart of PowerToys Run.

What it writes

Hive
HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER
Registry key
Software\Policies\PowerToys\PowerLauncherIndividualPluginEnabledList

Options

OptionTypeRegistry valueAllowed values
List of managed plugins List of values Name and value pairs

Configure and deploy

Choose a state and the option values; the output below is generated from the template for exactly that.

State
Apply to
Options used when Enabled

Enabled · Computer · template defaults

Registry file (.reg)

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\Software\Policies\PowerToys\PowerLauncherIndividualPluginEnabledList]


PowerShell

$ErrorActionPreference = 'Stop'

function Set-RegistryValue {
    param(
        [Parameter(Mandatory = $true)][string] $Path,
        [Parameter(Mandatory = $true)][string] $Name,
        [Parameter(Mandatory = $true)][string] $PropertyType,
        [Parameter(Mandatory = $true)][object] $Value
    )

    if (-not (Test-Path -LiteralPath $Path)) {
        New-Item -Path $Path -Force | Out-Null
    }

    New-ItemProperty -LiteralPath $Path -Name $Name -PropertyType $PropertyType -Value $Value -Force | Out-Null
}

function Remove-RegistryValue {
    param(
        [Parameter(Mandatory = $true)][string] $Path,
        [Parameter(Mandatory = $true)][string] $Name
    )

    if (Test-Path -LiteralPath $Path) {
        Remove-ItemProperty -LiteralPath $Path -Name $Name -Force -ErrorAction SilentlyContinue
    }
}

function Clear-RegistryKeyValues {
    param(
        [Parameter(Mandatory = $true)][string] $Path
    )

    if (-not (Test-Path -LiteralPath $Path)) {
        return
    }

    foreach ($propertyName in (Get-Item -LiteralPath $Path).Property) {
        Remove-ItemProperty -LiteralPath $Path -Name $propertyName -Force -ErrorAction SilentlyContinue
    }
}

# Policy: Configure enabled state for individual plugins
# Name: PowerToysRunIndividualPluginEnabledState
# Scope: Machine
# State: Enabled
# Source: PowerToys.admx

Clear-RegistryKeyValues -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\PowerToys\PowerLauncherIndividualPluginEnabledList'
  • The OMA-URI is an inferred ADMX-backed Policy CSP candidate derived from the source ADMX file name and policy name.
  • Some Microsoft policies use built-in Policy CSP pages whose area names don't match the ADMX file name, so verify the candidate against Microsoft Learn before deployment.
  • The generated payload is incomplete because one or more ADMX element values were not supplied: PowerToysRunIndividualPluginEnabledList

ADMX profile candidate (OMA-URI)

./Device/Vendor/MSFT/Policy/Config/ADMX_PowerToys/PowerToysRunIndividualPluginEnabledState
Intune remediation scripts

Detection

$ErrorActionPreference = 'Stop'
$reasons = [System.Collections.Generic.List[string]]::new()

function Test-RegistryValueExists {
    param(
        [Parameter(Mandatory = $true)][string] $Path,
        [Parameter(Mandatory = $true)][string] $Name
    )

    if (-not (Test-Path -LiteralPath $Path)) {
        return $false
    }

    return $null -ne (Get-ItemProperty -LiteralPath $Path -Name $Name -ErrorAction SilentlyContinue)
}

function Test-RegistryValueEquals {
    param(
        [Parameter(Mandatory = $true)][string] $Path,
        [Parameter(Mandatory = $true)][string] $Name,
        [Parameter(Mandatory = $true)][string] $Kind,
        [Parameter(Mandatory = $true)][object] $Expected
    )

    if (-not (Test-Path -LiteralPath $Path)) {
        return $false
    }

    $valueObject = Get-ItemProperty -LiteralPath $Path -Name $Name -ErrorAction SilentlyContinue
    if ($null -eq $valueObject) {
        return $false
    }

    $actual = $valueObject.$Name
    switch ($Kind) {
        'String' { return [string]$actual -ceq [string]$Expected }
        'ExpandString' { return [string]$actual -ceq [string]$Expected }
        'DWord' { return [uint32]$actual -eq [uint32]$Expected }
        'QWord' { return [uint64]$actual -eq [uint64]$Expected }
        'MultiString' {
            $actualArray = @($actual)
            $expectedArray = @($Expected)
            if ($actualArray.Count -ne $expectedArray.Count) { return $false }
            for ($index = 0; $index -lt $actualArray.Count; $index++) {
                if ([string]$actualArray[$index] -cne [string]$expectedArray[$index]) { return $false }
            }
            return $true
        }
        'Binary' {
            $actualArray = [byte[]]$actual
            $expectedArray = [byte[]]$Expected
            if ($actualArray.Length -ne $expectedArray.Length) { return $false }
            for ($index = 0; $index -lt $actualArray.Length; $index++) {
                if ($actualArray[$index] -ne $expectedArray[$index]) { return $false }
            }
            return $true
        }
        default { return [string]$actual -ceq [string]$Expected }
    }
}

# Policy: Configure enabled state for individual plugins
# Name: PowerToysRunIndividualPluginEnabledState
# Scope: Machine
# State: Enabled
# Source: PowerToys.admx

$keyPath = 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\PowerToys\PowerLauncherIndividualPluginEnabledList'
if (Test-Path -LiteralPath $keyPath) {
    $propertyNames = (Get-Item -LiteralPath $keyPath).Property
    if ($propertyNames.Count -gt 0) {
        $reasons.Add('Key should be empty: HKEY_LOCAL_MACHINE\Software\Policies\PowerToys\PowerLauncherIndividualPluginEnabledList') | Out-Null
    }
}

if ($reasons.Count -eq 0) {
    Write-Output 'Compliant'
    exit 0
}

$reasons | ForEach-Object { Write-Output $_ }
exit 1

Remediation

$ErrorActionPreference = 'Stop'

function Set-RegistryValue {
    param(
        [Parameter(Mandatory = $true)][string] $Path,
        [Parameter(Mandatory = $true)][string] $Name,
        [Parameter(Mandatory = $true)][string] $PropertyType,
        [Parameter(Mandatory = $true)][object] $Value
    )

    if (-not (Test-Path -LiteralPath $Path)) {
        New-Item -Path $Path -Force | Out-Null
    }

    New-ItemProperty -LiteralPath $Path -Name $Name -PropertyType $PropertyType -Value $Value -Force | Out-Null
}

function Remove-RegistryValue {
    param(
        [Parameter(Mandatory = $true)][string] $Path,
        [Parameter(Mandatory = $true)][string] $Name
    )

    if (Test-Path -LiteralPath $Path) {
        Remove-ItemProperty -LiteralPath $Path -Name $Name -Force -ErrorAction SilentlyContinue
    }
}

function Clear-RegistryKeyValues {
    param(
        [Parameter(Mandatory = $true)][string] $Path
    )

    if (-not (Test-Path -LiteralPath $Path)) {
        return
    }

    foreach ($propertyName in (Get-Item -LiteralPath $Path).Property) {
        Remove-ItemProperty -LiteralPath $Path -Name $propertyName -Force -ErrorAction SilentlyContinue
    }
}

# Policy: Configure enabled state for individual plugins
# Name: PowerToysRunIndividualPluginEnabledState
# Scope: Machine
# State: Enabled
# Source: PowerToys.admx

Clear-RegistryKeyValues -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\PowerToys\PowerLauncherIndividualPluginEnabledList'

History 63 retained releases

  1. 0.81.021 May 2024
    • Template definition changed; registry values, options and limits are the same.
  2. 0.76.04 Dec 2023
    • Description With this policy you can configure[removed: s] an individual enabled state for each PowerToys Run plugin that you add … column) is the plugin ID. You will find it in the plugin.json [added: file ]which is located in the plugin folder. - The value (second column) … the plugins. You can set the enabled state for all plugins not [removed: listed here][added: configured by this policy] using the policy "Configure enabled state for all plugins". Note: Changes require …
      Whole description, marked

      With this policy you can configure[removed: s] an individual enabled state for each PowerToys Run plugin that you add to the list. If you enable this setting, you can define the list of plugins and their enabled states: - The value name (first column) is the plugin ID. You will find it in the plugin.json [added: file ]which is located in the plugin folder. - The value (second column) is a numeric value: 0 for disabled, 1 for enabled and 2 for user takes control. - Example to disable the Program plugin: 791FC278BA414111B8D1886DFE447410 | 0 If you disable or don't configure this policy, either the user or the policy "Configure enabled state for all plugins" takes control over the enabled state of the plugins. You can set the enabled state for all plugins not [removed: listed here][added: configured by this policy] using the policy "Configure enabled state for all plugins". Note: Changes require a restart of PowerToys Run.

  3. 0.75.030 Oct 2023
    • Added in this release.

44 later releases left it unchanged.

Template

Internal name
PowerToysRunIndividualPluginEnabledState
Namespace
Microsoft.Policies.PowerToys
Template file
PowerToys.admx
Release
Microsoft PowerToys 0.101.2362.0 · file set d5e4003f3cfc59f8…
Definition, editor controls and support

Definition

<policy class="Both" displayName="$(string.PowerToysRunIndividualPluginEnabledState)" explainText="$(string.PowerToysRunIndividualPluginEnabledStateDescription)" key="Software\Policies\PowerToys\PowerLauncherIndividualPluginEnabledList" name="PowerToysRunIndividualPluginEnabledState" presentation="$(presentation.PowerToysRunIndividualPluginEnabledState)" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
      <parentCategory ref="Microsoft.Policies.PowerToys:PowerToysRun" />
      <supportedOn ref="Microsoft.Policies.PowerToys:SUPPORTED_POWERTOYS_0_75_0" />
      <elements>
        <list explicitValue="true" id="PowerToysRunIndividualPluginEnabledList" />
      </elements>
    </policy>

Editor controls

<presentation id="PowerToysRunIndividualPluginEnabledState" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
        <listBox refId="PowerToysRunIndividualPluginEnabledList">List of managed plugins:</listBox>
      </presentation>

Supported platforms and category

Microsoft.Policies.PowerToys:category:PowerToys
<category displayName="$(string.PowerToys)" name="PowerToys" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
Microsoft.Policies.PowerToys:category:PowerToysRun
<category displayName="$(string.PowerToysRun)" name="PowerToysRun" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
      <parentCategory ref="Microsoft.Policies.PowerToys:PowerToys" />
    </category>
Microsoft.Policies.PowerToys:definition:SUPPORTED_POWERTOYS_0_75_0
<definition displayName="$(string.SUPPORTED_POWERTOYS_0_75_0)" name="SUPPORTED_POWERTOYS_0_75_0" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
Microsoft.Policies.PowerToys:category:PowerToys
<category displayName="$(string.PowerToys)" name="PowerToys" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
<strings><string id="Microsoft.Policies.PowerToys:PowerToys">Microsoft PowerToys</string></strings>
Microsoft.Policies.PowerToys:category:PowerToysRun
<category displayName="$(string.PowerToysRun)" name="PowerToysRun" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
      <parentCategory ref="Microsoft.Policies.PowerToys:PowerToys" />
    </category>
<strings><string id="Microsoft.Policies.PowerToys:PowerToysRun">PowerToys Run</string></strings>
Microsoft.Policies.PowerToys:definition:SUPPORTED_POWERTOYS_0_75_0
<definition displayName="$(string.SUPPORTED_POWERTOYS_0_75_0)" name="SUPPORTED_POWERTOYS_0_75_0" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
<strings><string id="Microsoft.Policies.PowerToys:SUPPORTED_POWERTOYS_0_75_0">PowerToys version 0.75.0 or later</string></strings>
ChangeIntel

An IT change radar: releases, security, known issues, retirements, documentation changes, and service status from public sources. Every item links to supporting evidence; dates and statuses can change after they are read.

Sources read 20 Oct 04:31 UTC · 258 of 260 readable · 256 fully read · documentation 416/444 current