HomeNewsletterCommunityMVP FeedToolsArchiveBlogToday's NewsAboutServicesQuick Links Subscribe free
← Back to Blog
Security Microsoft EdgeIntuneSecurityBrowser ManagementCVEGroup PolicyWindows 11

Microsoft Edge 152 Got Two Security Updates in 48 Hours - Here's How to Prove Every Managed Device Actually Installed the Second One

IA
Imran Awan
5 September 2026

On September 2, 2026, Microsoft shipped Edge 152.0.4191.62 to patch CVE-2026-85046 - a vulnerability Google's Chromium team had already confirmed was being actively exploited. Two days later, on September 4, Edge 152.0.4191.66 landed as a further Chromium security refresh. Two security builds, 48 hours apart, for the same major version.

That pace isn't a one-off. Edge just moved to a two-week release cycle for major versions, and security-only point releases can land on top of that schedule at any time. The interesting question for an admin isn't "what does CVE-2026-85046 do" - it's "can I actually prove every managed device installed 152.0.4191.66, or am I just assuming Edge's own updater did its job?"

Watch this post — YouTube walkthrough

Watch on YouTube · Subscribe at @EndpointWeekly

The short version

Microsoft Edge updates itself using its own background service (EdgeUpdate), completely separate from Windows Update and separate from how Intune deploys Win32 apps. That independence is exactly why "Edge should be current" is not the same claim as "Edge is current" - the service can be silently disabled, a leftover test policy can be pinning devices to an old build, or an update can finish downloading but never take effect because nobody relaunched the browser. This post shows the real registry values and PowerShell to check a single device, how to configure Intune (Settings Catalog, ADMX-backed) and Group Policy to keep every device current and force a relaunch when an update is waiting, and where to look in Intune to check the whole fleet at once.

The problem: "Edge should have updated" isn't proof

Picture the request: security or compliance asks you to confirm every managed Windows device is running Edge 152.0.4191.66 or later, because that build closes an actively-exploited vulnerability. Your first instinct is to open Intune and look. That instinct is the trap.

Edge is not deployed and versioned like a normal Win32 app in Intune. It ships with Windows and updates itself in the background using its own updater, on its own schedule, largely invisible to whatever's watching Windows Update compliance. Intune's own app inventory data about Edge is a snapshot from the last time each device checked in - not a live read of what's actually installed right now.

Gotcha: A device can report 100% compliant on every Windows Update policy you have and still be running a six-week-old build of Edge with a known, exploited vulnerability in it. Windows Update and Edge's own updater are two completely separate delivery pipelines. Checking one tells you nothing about the other.

Three specific things quietly cause a device to lag behind the version Microsoft actually shipped:

CauseWhat you'll seeHow you'd catch it
EdgeUpdate service or scheduled tasks disabled/blockedDevice stays on whatever version it had when the service stopped running, indefinitelyService state and scheduled task last-run time
A leftover TargetVersionPrefix or wrong TargetChannel policy from a pilot or lab buildDevice is pinned to an old version or the wrong channel and never moves, even with the service healthyRegistry values under the EdgeUpdate policy key
Update downloaded successfully, but the browser was never relaunchedThe file on disk is new, but the running process is still the old version until relaunchComparing the installed version to the running process version

Why it happens: Edge updates itself, on its own schedule, independent of Windows

Edge's updater is built on the same underlying technology Chrome uses (an open-source project called Omaha). When Edge installs, it also installs a small background service called EdgeUpdate and two scheduled tasks. That service periodically calls out to Microsoft's update servers, checks whether a newer build exists for whatever channel the device is targeting, and if so, downloads and installs it in the background - without needing Windows Update, without needing an Intune Win32 app assignment, and without needing the user to do anything.

Note: This is also why Edge is now on a two-week release cycle for major versions - starting with Edge 152, which reached Stable on August 27, 2026. Organizations that want a slower, more predictable cadence can stay on Extended Stable instead, which only picks up every fourth Stable release (for example, 152, 156, 160, 164) and updates roughly every eight weeks. Security-only point releases, like the jump from 152.0.4191.62 to 152.0.4191.66, can still land in between on either channel when needed - the two-week cadence is for planned feature releases, not a ceiling on emergency security fixes.

That background, self-contained design is genuinely good for security - it means most devices patch themselves within a day or two of release with zero admin effort. It's also exactly why you can't just eyeball it. Three things can each independently break the chain silently:

First, the EdgeUpdate service itself has to be running. If a security tool, a group policy, or a well-meaning technician disabled it - sometimes to "reduce background processes" - the device simply stops checking for updates and nobody gets an error.

Second, Edge's updater honors policy settings that pin it to a specific version or channel. These are genuinely useful for testing a new release before a wide rollout - but if that pilot policy is never removed afterward, the device is now permanently stuck on whatever version was pinned, silently, forever.

Third, downloading a new version and running it are two different events. The updater can successfully download 152.0.4191.66 in the background, but the browser process actually in memory keeps running the old code until the user closes and reopens Edge - which, for someone who keeps forty tabs open for three weeks, might be a while.

How to verify: one device, then the whole fleet

Start with a single device. Two numbers need to agree: the version Edge Update has actually installed on disk, and the version of the browser process the user is currently running.

Windows PowerShell
$installed = (Get-ItemProperty "HKLM:\SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients\{56EB18F8-B008-4CBD-B6D2-8C97FE7E9062}" -Name pv).pv $running = (Get-Item "$env:ProgramFiles (x86)\Microsoft\Edge\Application\msedge.exe").VersionInfo.ProductVersion [PSCustomObject]@{ InstalledOnDisk = $installed; CurrentlyRunning = $running } InstalledOnDisk CurrentlyRunning --------------- ---------------- 152.0.4191.66 152.0.4191.62

Here's how to read that. InstalledOnDisk comes from the pv registry value under Edge Update's own client key - this is the version the updater believes it has fully installed. CurrentlyRunning reads the actual file version of msedge.exe that a running browser process is using. In the example above, the updater has already installed 152.0.4191.66, but the browser itself hasn't been relaunched since - it's still running .62. That device isn't broken. It's just waiting on a relaunch, and it will keep showing up as "vulnerable" to anyone checking only the running process until that happens.

Tip: Any user can check this manually themselves by typing edge://version into the address bar. It shows the running version at the top, and if an update has been downloaded and is waiting for a relaunch, Edge also shows a Relaunch button directly on that same page.

Next, check whether policy is pinning the device to something other than the latest Stable build:

Registry Editor
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\EdgeUpdate
UpdateDefault REG_DWORD 0x00000001 (1 = always allow updates - healthy)
TargetChannel{56EB18F8-B008-4CBD-B6D2-8C97FE7E9062} REG_SZ beta ← leftover pilot policy, not Stable
TargetVersionPrefix{56EB18F8-B008-4CBD-B6D2-8C97FE7E9062} REG_SZ (not set - healthy)

If TargetChannel or TargetVersionPrefix exist and don't match what you intend for that device, that's your answer - the device isn't behind because of a broken updater, it's behind because a policy is telling it to stay behind. Also worth a quick look: confirm the updater itself is actually alive.

Windows PowerShell
Get-Service edgeupdate, edgeupdatem | Select-Object Name, Status, StartType Get-ScheduledTask -TaskName "MicrosoftEdgeUpdateTaskMachineUA" | Select-Object TaskName, State Name Status StartType ---- ------ --------- edgeupdate Stopped Automatic edgeupdatem Stopped Manual TaskName State -------- ----- MicrosoftEdgeUpdateTaskMachineUA Ready
Gotcha: Both services showing Stopped is normal, not a fault - do not "fix" this. edgeupdate is a trigger-started service: it starts, runs its check, and stops again within seconds, so catching it mid-Running is the exception, not the rule. Several admins have reported the exact same thing to Microsoft, mistaking it for a crash. The signal that actually matters is StartType - it should be Automatic (sometimes shown as an automatic/delayed-start variant), never Disabled. edgeupdatem is a separate, lower-privilege helper that only runs briefly during an install. The MicrosoftEdgeUpdateTaskMachineUA scheduled task - the one that actually performs the update check - should show Ready, meaning it's enabled and waiting for its next scheduled run rather than disabled.

For the whole fleet at once, without touching a single device individually, use Intune's own inventory of what's installed.

Go to Apps › Monitor › Discovered apps in the Intune admin center, search for Microsoft Edge, and it breaks device counts down by exact version. Export it (both an aggregate and a raw, per-device CSV are offered) to get the actual device names behind each version bucket.

Watch out: This report is only as fresh as each device's last Intune check-in, not a live query. Cross-reference the export against each device's last sync time - a device showing an old Edge version that also hasn't synced with Intune in two weeks might just be offline, not actually stuck. Devices that are both behind on version and recently synced are the ones worth chasing first.

The fix: policy that keeps Edge current and forces the relaunch

Two separate policy areas matter here, and they live under two different ADMX files, which is worth knowing before you go looking for them: Microsoft Edge Update policies (channel and version control) and Microsoft Edge browser policies (the relaunch behavior). Both are fully supported as built-in, ADMX-backed settings in Intune's Settings Catalog - no custom OMA-URI profile needed.

SettingRegistry value (under its policy key)Recommended value
Update policy override defaultUpdateDefault1 - Always allow updates
Target channel overrideTargetChannel{56EB18F8-B008-4CBD-B6D2-8C97FE7E9062}stable for production, extended for slower-cadence fleets - never leave a pilot's beta/dev value in place
Target version overrideTargetVersionPrefix{56EB18F8-B008-4CBD-B6D2-8C97FE7E9062}Not configured, unless you have a genuine, time-boxed reason to pin a version
Relaunch notificationRelaunchNotification (separate key, see below)2 - Required
Relaunch notification periodRelaunchNotificationPeriod (same key)86400000 (24 hours, in milliseconds)

The first three live under HKLM\SOFTWARE\Policies\Microsoft\EdgeUpdate (Group Policy path Administrative Templates › Microsoft Edge Update › Applications › Microsoft Edge, ADMX file msedgeupdate.admx). The relaunch settings live under a different key, HKLM\SOFTWARE\Policies\Microsoft\Edge (Group Policy path Administrative Templates › Microsoft Edge, ADMX file msedge.admx) - it's easy to assume they're all in one place since they all say "Edge," but the updater and the browser itself are configured through two separate policy sets.

Deploy through Intune (Settings Catalog)

  1. Sign in to the Intune admin center.
  2. Go to Devices › Configuration › Create › New policy.
  3. Choose platform Windows 10 and later, profile type Settings catalog.
  4. Search for and add Update policy override default, Target channel override, and Target version override from the Microsoft Edge Update > Applications category. Set the first to Always allow updates, set the channel to Stable (or Extended Stable if that's your fleet's policy), and leave the version override not configured unless you have an active, time-boxed reason to pin one.
  5. In the same profile (or a second one), search the Microsoft Edge category for Notify a user that a browser relaunch is recommended or required and Set the time period for update notifications. Set the first to Required and the second to a value your users can tolerate - 24 hours is a reasonable default.
  6. Assign both profiles to your target device group, review, and create.
Gotcha: Setting relaunch to Required means Edge will eventually force-close and reopen itself, including any unsaved work in other tabs, once the notification period expires. Warn users before rolling this out fleet-wide, and consider a longer period (like 48-72 hours) for shift workers or anyone who routinely leaves long-running web apps open.

Deploy through Group Policy

  1. Open gpmc.msc, edit the target GPO.
  2. Navigate to Computer Configuration › Administrative Templates › Microsoft Edge Update › Applications › Microsoft Edge.
  3. Configure Update policy override default (Always allow updates), Target channel override (Stable or Extended Stable), and confirm Target version override is Not Configured.
  4. Navigate to Computer Configuration › Administrative Templates › Microsoft Edge (a separate node from the one above).
  5. Configure Notify a user that a browser relaunch is recommended or required to Required, and Set the time period for update notifications to your chosen value in milliseconds.
  6. Run gpupdate /force on a test device to confirm the policy applies before rolling out broadly.
Note: Both of these policy areas are fully CSP/ADMX-backed - there is no GPO-only setting here that Intune can't reach, and no Intune-only setting Group Policy can't reach. Pick whichever management channel your fleet already standardizes on; the underlying registry values end up identical either way.

Proof it worked

Re-run the same two-number check from earlier, on the same device, a day or two after the policy applies and at least one relaunch has happened.

Windows PowerShell - after policy applied and relaunch completed
$installed = (Get-ItemProperty "HKLM:\SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients\{56EB18F8-B008-4CBD-B6D2-8C97FE7E9062}" -Name pv).pv $running = (Get-Item "$env:ProgramFiles (x86)\Microsoft\Edge\Application\msedge.exe").VersionInfo.ProductVersion [PSCustomObject]@{ InstalledOnDisk = $installed; CurrentlyRunning = $running } InstalledOnDisk CurrentlyRunning --------------- ---------------- 152.0.4191.66 152.0.4191.66

This is what good looks like: both numbers match, and they match the latest Stable build. Back in Intune's Discovered apps report, the device count on the current version should climb over the following day or two as check-ins roll in, and the stragglers list should shrink to genuinely offline devices rather than devices silently stuck behind a stale policy.

Tip: All six checks above - installed version, running version, EdgeUpdate service state, the update task, and both policy keys - are wrapped into a single read-only script below, with a -CompliantVersion parameter and a -ExportCsv switch for scheduling it as an Intune platform script across a fleet.

Here's what it actually looks like run against a real, currently-non-compliant device - this is a genuine captured run, not a mocked-up example:

Get-EdgeUpdateComplianceReport.ps1 - real run
.\Get-EdgeUpdateComplianceReport.ps1 ComputerName : REDACTED-DEVICE CheckedAt : 2026-09-05 10:51:37 InstalledVersion : 152.0.4191.62 RunningVersion : 152.0.4191.62 CompliantVersion : 152.0.4191.66 Verdict : NonCompliant EdgeUpdateServiceStatus : Stopped EdgeUpdateServiceStartType : Automatic EdgeUpdateMServiceStatus : Stopped UpdateTaskState : Ready Reasons : Installed version 152.0.4191.62 is behind the required 152.0.4191.66

Read that the same way as the manual check earlier: InstalledVersion and RunningVersion agree with each other (no pending relaunch), and EdgeUpdateServiceStartType confirms the service is configured correctly (Automatic, not Disabled) - the Stopped status next to it is the normal trigger-started idle state covered above, not a finding. The only real problem the Reasons field surfaces is the version itself: this device genuinely has not received 152.0.4191.66 yet. Triggering an on-demand check (the remediation step below) is the direct next move; if the version still has not moved after that, the device's network path to Microsoft's update servers is the next thing to check.

PowerShell Script - Edge Update Compliance Report

Script for this post is in Windows-Patching-Scripts. Download and run it directly - no sign-in required. It is read-only and makes no changes to the device; validate it in your own environment before scheduling it fleet-wide.

Get-EdgeUpdateComplianceReport.ps1 — installed vs. running version, EdgeUpdate service/task health, and policy overrides in one read-only pass, with CSV export for ad-hoc checks
Detect-EdgeUpdateCompliance.ps1 — the detection half of the Proactive Remediation pair below
Remediate-EdgeUpdateCompliance.ps1 — starts the EdgeUpdate service/task if stopped and triggers an on-demand update check
edge-compliance-ledger.html — the dashboard shown below, also available live at endpointweekly.com/tools - download this copy to run it fully offline
View script on GitHub

At fleet scale: stop checking laptops one at a time

Everything so far works on a single device. That is fine for spot-checking one machine, but it does not scale to a few hundred or a few thousand endpoints - and it should not be the process security or compliance actually relies on. The two scripts above (Detect-EdgeUpdateCompliance.ps1 and Remediate-EdgeUpdateCompliance.ps1) turn the exact same checks into an Intune Proactive Remediation that runs on a schedule across every assigned device, with no one opening a single PowerShell window.

Tip: Detection and remediation are deliberately narrow in scope. Detection reports the same six checks as the standalone script - installed version, running version, service state, task state, and both policy keys. Remediation only fixes the EdgeUpdate service's start type if it is found Disabled and then triggers an on-demand update check - it deliberately does not force the service to a "Running" state, since Stopped is its normal idle state between checks. It does not touch TargetChannel or TargetVersionPrefix, because those are set by your Intune/GPO policy from "The fix" section above, and a script silently rewriting them would just get overwritten again on the next policy refresh. If a device is still non-compliant purely because of a policy value, that is a signal for an admin to review the assignment, not something to script around.
  1. Sign in to the Intune admin center.
  2. Go to Devices › Scripts and remediations › Proactive remediations.
  3. Select Create and name it, e.g. "Edge Update Compliance - Detect and Remediate".
  4. On the Settings page, paste Detect-EdgeUpdateCompliance.ps1 into Detection script file, and update the $CompliantVersion default inside it to match the current required build before you upload it - Intune has no built-in value to read this from automatically.
  5. Paste Remediate-EdgeUpdateCompliance.ps1 into Remediation script file.
  6. Set Run this script using the logged-on credentials to No (the script needs to manage a machine-level service) and Enforce script signature check based on your environment's requirements.
  7. Select Next, then assign to your target device group under Scope tags › Assignments.
  8. Set the schedule (e.g. Daily, every 1 day) and select Next › Create.
Devices Scripts and remediations Create

Once this has run at least once, Devices › Scripts and remediations › Proactive remediations › [your policy name] › Device status shows every assigned device's detection result and, where it fired, the remediation outcome. That view is the closest thing Intune has to a live answer for "are we all on 152.0.4191.66" - closer than Discovered Apps, since it reflects the last scheduled run rather than the last general check-in, and it shows the exact reason a device failed, not just the version.

To turn that per-device Intune view into something you can actually scan at a glance, export the Detect/Remediate results (or run Get-EdgeUpdateComplianceReport.ps1 -ExportCsv across the fleet through your RMM or a scheduled task, combining the per-device CSVs into one file) and load it into the Edge Compliance Ledger - a small dashboard built specifically around this script's own CSV output. It is a single static page with no backend, so it also works if you download it from the script repo below and open it straight from disk - useful if your fleet's compliance data shouldn't touch a public web page at all.

Edge Compliance Ledger dashboard showing seven example devices with compliant, needs-relaunch, non-compliant and error verdicts, a summary strip, and per-device reasons

The Edge Compliance Ledger loaded with example data - the same shape a real fleet export produces.

Why this is worth having instead of eyeballing a spreadsheet or a portal screen device by device:

References

Was this post helpful?
React below — no account needed
Share this post
LinkedIn X / Twitter Reddit Bluesky

More from EndpointWeekly

Security
Microsoft Edge Now Lets Users Sign In With Google — Here's What…
Edge now shows a Google sign-in option for browser profiles. On managed endpoints, that…
Security
Windows August 2026 Patch Tuesday: SharePoint Unauthenticated…
A no-auth SharePoint RCE chain, a Windows kernel privesc, and 200-300+ CVEs land on 12…
Security
How Many People Are Still in Your Local Administrators Group…
LAPS proves your local admin password rotates. It doesn't prove nobody's quietly…