Public mode

No tenant, Graph, or device access. Every item links to its source. What this means

Some sources or documents need attention: 253/255 feeds/APIs · 0/410 docs · checked 22:28 UTC Customize Public modeDiscuss ChangeIntel on Discord

Microsoft Edge Group Policy settings

910 settings · 155.0.4283.62 · 16 Oct 2026

Back to the list

Microsoft Edge WebView2 › Loader Override Settings

Configure the location of the browser executable folder

Computer and userIntune-readyBrowserExecutableFolder

Supported on Microsoft Edge version 87, Windows 7 or later

What it does

This policy configures WebView2 applications to use the WebView2 Runtime in the specified path. The folder should contain the following files: msedgewebview2.exe, msedge.dll, and so on. To set the value for the folder path, provide a Value name and Value pair. Set value name to the Application User Model ID or the executable file name. You can use the "*" wildcard as value name to apply to all applications. Example value: Name: *, Value: C:\Program Files\Microsoft Edge WebView2 Runtime Redistributable 85.0.541.0 x64

What it writes

Hive
HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER
Registry key
Software\Policies\Microsoft\Edge\WebView2

Options

OptionTypeRegistry valueAllowed values
Set value name to the Application User Model ID or the executable file name. You can use the "*" wildcard as value name to apply to all applications. List of values Software\Policies\Microsoft\Edge\WebView2\BrowserExecutableFolder 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\Microsoft\Edge\WebView2\BrowserExecutableFolder]


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 the location of the browser executable folder
# Name: BrowserExecutableFolder
# Scope: Machine
# State: Enabled
# Source: msedgewebview2.admx

Clear-RegistryKeyValues -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Edge\WebView2\BrowserExecutableFolder'
  • 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: BrowserExecutableFolderDesc

ADMX profile candidate (OMA-URI)

./Device/Vendor/MSFT/Policy/Config/ADMX_msedgewebview2/BrowserExecutableFolder
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 the location of the browser executable folder
# Name: BrowserExecutableFolder
# Scope: Machine
# State: Enabled
# Source: msedgewebview2.admx

$keyPath = 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Edge\WebView2\BrowserExecutableFolder'
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\Microsoft\Edge\WebView2\BrowserExecutableFolder') | 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 the location of the browser executable folder
# Name: BrowserExecutableFolder
# Scope: Machine
# State: Enabled
# Source: msedgewebview2.admx

Clear-RegistryKeyValues -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Edge\WebView2\BrowserExecutableFolder'

History 37 retained releases

  1. 150.0.4078.8016 Jul 2026
    • Already present in the first release ChangeIntel keeps.

36 later releases left it unchanged.

Template

Internal name
BrowserExecutableFolder
Namespace
Microsoft.Policies.WebView2
Template file
msedgewebview2.admx
Release
Microsoft Edge 155.0.4283.62 · file set 0a733b0040dbbf02…
Definition, editor controls and support

Definition

<policy class="Both" displayName="$(string.BrowserExecutableFolder)" explainText="$(string.BrowserExecutableFolder_Explain)" key="Software\Policies\Microsoft\Edge\WebView2" name="BrowserExecutableFolder" presentation="$(presentation.BrowserExecutableFolder)" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
      <parentCategory ref="Microsoft.Policies.WebView2:WebView2LoaderOverrideSettings" />
      <supportedOn ref="Microsoft.Policies.WebView2:SUPPORTED_WIN7_V87" />
      <elements>
        <list explicitValue="true" id="BrowserExecutableFolderDesc" key="Software\Policies\Microsoft\Edge\WebView2\BrowserExecutableFolder" />
      </elements>
    </policy>

Editor controls

<presentation id="BrowserExecutableFolder" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions"><listBox refId="BrowserExecutableFolderDesc">Set value name to the Application User Model ID or the executable file name. You can use the "*" wildcard as value name to apply to all applications.</listBox></presentation>

Supported platforms and category

Microsoft.Policies.WebView2:category:WebView2LoaderOverrideSettings
<category displayName="$(string.WebView2LoaderOverrideSettings_group)" name="WebView2LoaderOverrideSettings" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
      <parentCategory ref="Microsoft.Policies.WebView2:microsoft_edge_webview2" />
    </category>
Microsoft.Policies.WebView2:category:microsoft_edge_webview2
<category displayName="$(string.microsoft_edge_webview2)" name="microsoft_edge_webview2" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
Microsoft.Policies.WebView2:definition:SUPPORTED_WIN7_V87
<definition displayName="$(string.SUPPORTED_WIN7_V87)" name="SUPPORTED_WIN7_V87" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
Microsoft.Policies.WebView2:category:WebView2LoaderOverrideSettings
<category displayName="$(string.WebView2LoaderOverrideSettings_group)" name="WebView2LoaderOverrideSettings" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
      <parentCategory ref="Microsoft.Policies.WebView2:microsoft_edge_webview2" />
    </category>
<strings><string id="Microsoft.Policies.WebView2:WebView2LoaderOverrideSettings_group">Loader Override Settings</string></strings>
Microsoft.Policies.WebView2:category:microsoft_edge_webview2
<category displayName="$(string.microsoft_edge_webview2)" name="microsoft_edge_webview2" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
<strings><string id="Microsoft.Policies.WebView2:microsoft_edge_webview2">Microsoft Edge WebView2</string></strings>
Microsoft.Policies.WebView2:definition:SUPPORTED_WIN7_V87
<definition displayName="$(string.SUPPORTED_WIN7_V87)" name="SUPPORTED_WIN7_V87" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
<strings><string id="Microsoft.Policies.WebView2:SUPPORTED_WIN7_V87">Microsoft Edge version 87, Windows 7 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 18 Oct 22:28 UTC · 253 of 255 readable · 252 fully read · documentation 0/410 current