Microsoft 365 Device Management

Managing Windows Updates with Intune: Update Rings, Feature Update Profiles, and Driver Update Control

Patching Windows at scale is a release-management problem wearing the costume of a checkbox. The checkbox — “keep devices up to date” — hides the real question every endpoint team eventually has to answer at 09:00 on a Wednesday: why is a quarter of the finance floor stuck on last quarter’s build, why did a storage driver blue-screen forty laptops overnight, and how do I ship an out-of-band zero-day patch to 30,000 machines by end of day without waiting out a 7-day deferral I set myself? Windows Update for Business (WUfB) delivered through Microsoft Intune is the answer, but only if you stop treating “Windows Update” as one thing. It is at least four independent release trains — quality updates, feature updates, drivers, and expedited emergency patches — each with its own cadence, its own gate, its own rollback story, and its own way of going silently wrong.

Intune surfaces WUfB as a handful of policy types that each map onto a Configuration Service Provider (CSP) — the on-device settings interface the Windows Update Agent honours. Get the mapping right and you have deadline-driven compliance, ringed rollouts, per-driver approval, and one-click emergency patching, all reported centrally. Get it wrong — overlapping rings, a feature deferral fighting a feature profile, telemetry blocked so every report reads empty — and you get a fleet that looks patched on the dashboard while a compliance auditor finds machines eight cumulative updates behind. This guide walks the whole surface: designing the rings, configuring every ring setting that actually changes device behaviour, pinning feature versions, gating drivers, expediting zero-days, reading the reports, respecting safeguard holds, and unsticking updates when they wedge.

By the end you will treat Windows updating the way a release engineer treats a deployment pipeline: separate trains, gated rings from pilot to broad, deadlines that guarantee compliance without ambushing users mid-meeting, and a readiness check before every feature jump. You will know which of the four policy types owns each decision, which CSP setting each maps to, what the real defaults and valid ranges are, and — the part that separates a five-minute triage from a two-hour one — exactly where to look on the device and in the portal when an update refuses to install.

What problem this solves

Without a deliberate update strategy, one of two failure modes always wins. Either you leave Windows on its defaults and updates install and reboot whenever they please — users lose unsaved work to a surprise 3pm restart, a bad feature update rolls out to everyone at once, and a driver regression takes down a whole department before anyone notices. Or you clamp everything down “for safety” with long deferrals and pauses, and six months later a security audit finds thousands of devices months behind on cumulative updates, unpatched against actively-exploited CVEs, because nothing was ever forced to a deadline. Both are common. Both are avoidable.

The specific pains this solves: blast radius (a patch that bricks a driver should hit a 200-device pilot on day zero, not 30,000 endpoints simultaneously); compliance drift (deferrals without deadlines let updates slip indefinitely — “offered” is not “installed”); user disruption (forced reboots during active hours, no grace period, no warning); feature-version chaos (devices drifting to whatever build is current, hitting app-compat regressions Microsoft already knows about via safeguard holds); driver roulette (Windows Update pushing a GPU or storage driver that your OEM hasn’t validated); zero-day response (a critical out-of-band patch that your own 7-day deferral is now delaying); and invisible failures (updates stuck for weeks with no error surfaced, because the reporting depends on telemetry that another policy quietly blocked).

Who hits this: every organisation running managed Windows 10/11 through Intune — which since the retirement of on-premises WSUS as a strategic tool is most of them. It bites hardest on regulated fleets (healthcare, finance) where an unplanned reboot on a clinical or trading workstation is a business incident, on large fleets where “roll it to everyone” is not survivable, and on any team that migrated off WSUS by copy-pasting old deferral numbers into a modern feature-profile world and recreated the dual-scan conflict without realising it. The fix is discipline: four release trains, ringed rollout, deadline-driven compliance, telemetry flowing, and a readiness gate before every feature advance.

To frame the whole field before the deep dive, here is every WUfB policy type Intune offers, the release train it governs, and the one decision it owns:

Intune policy type Release train it governs Backing mechanism The one decision it owns Portal location
Update rings Quality (monthly) + baseline feature behaviour Policy/Update CSP (classic) How long to defer, when the deadline forces the reboot Devices > Windows > Update rings for Windows 10 and later
Feature update profile Feature releases (23H2 → 24H2 …) WUfB deployment service (TargetReleaseVersion) Which Windows version devices are pinned to Devices > Windows > Feature updates for Windows 10 and later
Quality update profile (expedite) Emergency out-of-band cumulative WUfB deployment service Force a named CU now, overriding deferral/pause Devices > Windows > Quality updates for Windows 10 and later
Driver update profile Drivers + firmware WUfB deployment service (driver approvals) Approve/decline each driver, automatic vs manual Devices > Windows > Driver updates for Windows 10 and later
Windows Autopatch All of the above, managed for you Autopatch service (rings + reporting) Whether Microsoft runs the cadence, or you do Tenant administration > Windows Autopatch

Learning objectives

By the end of this article you can:

Prerequisites & where this fits

You should already have devices enrolled in Intune and Microsoft Entra joined or hybrid Entra joined — WUfB policy is delivered as MDM configuration to enrolled devices, so an un-enrolled or workgroup machine is out of scope. You should be comfortable creating Entra ID security groups (ideally dynamic ones) and assigning Intune policy to them, reading JSON from az rest/Microsoft Graph, and running elevated PowerShell on a Windows endpoint. Familiarity with the Windows servicing vocabulary — cumulative update (LCU), feature update, servicing channel, end of servicing — helps but this article defines each term as it appears.

This sits in the Endpoint Management track, downstream of enrolment and device identity. It assumes the provisioning story from Zero-Touch Windows Provisioning with Intune and Windows Autopilot and, for newer tenants, Windows Autopilot Device Preparation: Entra Join Provisioning and Migrating Off Legacy Autopilot. Ring targeting leans directly on the assignment mechanics in Mastering Intune Assignment Filters and Ring Deployment: Targeting Logic, Precedence, and Safe Rollouts. Update compliance is frequently a gate in Gating Microsoft 365 with Endpoint Conditional Access: Compliance Policies, Device Filters, and Require-Compliant Enforcement, because “device is up to date” is a compliance signal. It pairs with Building Intune Configuration Profiles with the Settings Catalog and ADMX Ingestion for the diagnostic-data and Delivery Optimization settings updating depends on.

A quick map of who owns what during an update incident, so you escalate to the right place:

Layer What lives here Who usually owns it Failure classes it causes
Entra groups / assignment Ring membership, dynamic rules Endpoint / identity team Wrong ring, overlapping rings, no ring
Intune update ring policy Deferral, deadline, active hours Endpoint team Silent stuck (deferral vs profile), surprise reboot
WUfB deployment service Feature/driver/expedite orchestration Microsoft (cloud) + endpoint team Offer never arrives; driver not surfaced
Diagnostic data / telemetry Windows telemetry level Security / endpoint team Empty reports, deployment service can’t act
Windows Update Agent (device) Scan, download, install, reboot Microsoft (platform) Stuck download, install error, reboot pending
Microsoft Update / CDN Update content Microsoft Content unavailable, safeguard hold applied

Core concepts

Six mental models make every later decision obvious.

WUfB is policy, not a content source. Windows Update for Business is not a product you install and it is not a server you run. It is a set of policies telling the Windows Update Agent on each device how to defer, schedule, gate, and reboot for updates it pulls directly from the Microsoft Update service over the internet. Intune only delivers the policy; there is no on-premises content cache in the WUfB model unless you layer in Delivery Optimization (peer-to-peer) or Microsoft Connected Cache. If a device can’t reach Microsoft’s update endpoints, WUfB policy is irrelevant — nothing downloads.

Classic ring vs deployment service — two different engines. The update ring is the classic model: Intune writes Policy/Update CSP settings, and the device’s Update Agent decides everything locally based on them (“set policy, let the device drive”). Feature update profiles, quality update (expedite) profiles, and driver update profiles run through the Windows Update for Business deployment service — a cloud service that orchestrates the rollout, holds offers until your date, ramps gradual rollouts, and tracks rich per-device state. This matters at troubleshooting time: for a classic ring you read the device; for a deployment-service object you can also query Graph for per-device rollout state. The two must not fight over the same release train.

Four release trains, deliberately separate. A quality update is the monthly cumulative (LCU) — security and reliability fixes, cumulative so the latest supersedes all prior. A feature update moves you between Windows releases (Windows 11 23H2 → 24H2) and is the one that breaks app-compat. Drivers/firmware are their own catalog Microsoft and OEMs publish. Expedited updates are emergency out-of-band cumulatives forced past your normal deferral. Treating these as one policy is the original sin; each needs its own cadence and gate.

Deferral offers, deadline compels, grace protects. A deferral delays when an update is offered (0–30 days quality, 0–365 feature). A deadline is what actually guarantees compliance — N days after the offer, the device force-installs and reboots. The grace period is a minimum the user always gets even if the deadline has already elapsed (e.g. a device that was off for a month at enrolment). Deferral without a deadline is how fleets drift; the deadline is the whole point.

Diagnostic data is the reporting oxygen. Both the deployment service and Intune’s WUfB reports depend on Windows diagnostic data reaching Microsoft. If the diagnostic data level is set below Required (by an update ring, a Settings Catalog policy, or a GPO), the deployment service can’t act on the device and the reports read empty even when patching works fine. “Empty report” almost never means “patching failed”; it means “telemetry is blocked.”

A safeguard hold is Microsoft protecting the device. When Microsoft’s telemetry shows a specific hardware/driver/app configuration regresses on a new feature build, it places a safeguard hold blocking that feature offer to affected devices. This is not a bug — it is Microsoft refusing to break your machine. You can force past it, but you’re overriding known-bad telemetry to trade a deferred update for a likely support incident.

The vocabulary in one table

Before the deep sections, pin down every moving part; the glossary repeats these for lookup.

Term One-line definition Where it lives Why it matters
Update ring Classic Policy/Update deferral + deadline policy Intune > Update rings Governs quality cadence + baseline behaviour
Feature update profile Pins TargetReleaseVersion to a Windows release Deployment service Stops feature drift; controls the jump
Quality update profile Expedites a named CU past deferral Deployment service Zero-day / emergency response
Driver update profile Per-driver approve/decline, auto/manual Deployment service Gates risky GPU/storage/firmware drivers
Deferral Days to delay the offer Policy/Update CSP Rings the rollout; buys validation time
Deadline Days after offer before forced install+reboot Policy/Update CSP Guarantees compliance
Grace period Minimum days a user always gets Policy/Update CSP Protects long-offline devices
Active hours Window where no auto-reboot occurs Policy/Update CSP Keeps reboots out of the workday
Safeguard hold Microsoft-placed block on a bad feature offer Microsoft telemetry Signal a config breaks on the target build
Deployment service Cloud orchestrator for feature/driver/expedite Microsoft cloud Rich per-device rollout state
Windows Autopatch Microsoft-managed rings + reporting Autopatch service Outsources the cadence entirely
Delivery Optimization Peer-to-peer / cache for update content Windows / MCC Cuts WAN bandwidth on big updates

Designing deployment rings

Rings exist to bound blast radius. The entire discipline is: never let an update reach the whole fleet before a representative subset has run it on real workloads for long enough to surface breakage. You express rings as Entra ID security groups, then assign one update ring (and feature/driver profiles) per group with staggered deferrals and rollout dates. Design the population before you touch any policy.

A workable model runs pilot → broad with an explicit exclusion ring:

Ring Population Share Quality deferral Deadline Feature strategy Purpose
Ring 0 — Preview IT + volunteer testers ~1% 0 days 2 days Latest, immediate Catch breakage on day zero
Ring 1 — Pilot Cross-section of every business unit ~5–10% 2 days 3 days Pinned current, gradual Validate on real workloads
Ring 2 — Broad Everyone else ~80% 7 days 3 days Pinned current, gradual Bulk of the fleet
Ring 3 — Critical exclusion Servers-as-workstations, kiosks, exec/clinical/OT ~5% 14–21 days 7 days Pinned, frozen Slowest, most controlled

Ring 3 — the “critical exclusion” ring — is the one teams forget and then regret. These are devices where an unplanned reboot is a business incident: a clinical workstation mid-procedure, a trading desk at market open, a factory-floor OT panel. They still get patched — leaving them unpatched is worse — but on a deliberately longer leash: longer deferral, longer deadline, longer grace, and a feature version that only advances after the broad ring has proven the build for weeks.

The percentages matter less than the representativeness. Ring 1 must contain a genuine cross-section — not just the IT department, whose devices run IT’s software. If Ring 1 is all Surface laptops and the fleet is half Dell desktops, Ring 1 validated nothing about the Dells. Compose pilot rings by hardware model, business unit, and app profile, not convenience.

Dynamic membership so devices self-sort

Manual ring curation rots within a quarter. Use dynamic membership rules so a device lands in the right ring by attribute. Example dynamic rule for a pilot ring keyed off a device naming convention:

(device.deviceOSType -eq "Windows") and (device.displayName -startsWith "PILOT-")

Or by an extension attribute you stamp during provisioning:

(device.deviceOSType -eq "Windows") and (device.extensionAttribute1 -eq "ring1-pilot")

Dynamic groups have a processing lag — a newly-enrolled device can take minutes to hours to land in its group, during which it is in no ring. Account for that: either a broad default ring catches everything by fallback, or you accept new devices are briefly unmanaged for updates.

The one-ring rule

Assign exactly one update ring per device. If a device falls into multiple update rings, Intune resolves the conflict and the losing rings report a conflict state — the device silently ends up on a deferral you didn’t intend. Overlapping rings are the single most common cause of “why is this device on the wrong cadence.” Audit membership regularly for devices in two ring groups at once.

The ring-design settings that vary by ring, and the reasoning for the spread:

Setting Ring 0 Preview Ring 1 Pilot Ring 2 Broad Ring 3 Critical Why it changes
Quality deferral (days) 0 2 7 14–21 More soak time downstream
Quality deadline (days) 2 3 3 7 Compliance floor; longer for critical
Grace period (days) 1 2 2 3 Protect long-offline / off-shift devices
Feature rollout Immediate Gradual Gradual, later start Manual, latest Prove the build before it spreads
User pause access Disabled Disabled Disabled Enabled (short) Give critical owners a valve
Restart notifications Default Default Default Auto-restart w/ notification Fewer surprises on critical devices

Configuring update rings: deferrals, deadlines, active hours, and restart behaviour

Create the ring under Devices > Windows > Update rings for Windows 10 and later > Create profile. The settings split into two blades — Update settings (deferral, servicing channel, restart) and User experience settings (deadline, grace, active hours, notifications). Only some of these change device behaviour meaningfully; here is the complete reference.

The Update settings blade:

Setting What it controls Default Valid range / values Maps to CSP When to change
Servicing channel Which channel devices track General Availability GA Channel / Windows Insider rings BranchReadinessLevel Insider only for a tiny preview ring
Microsoft product updates Include Office etc. via WU Allow Allow / Block AllowMUUpdateService Block if you patch Office via another path
Windows drivers Include drivers in WU scans Allow Allow / Block ExcludeWUDriversInQualityUpdate Block to fully own drivers via driver profiles
Quality update deferral (days) Delay the monthly CU offer 0 0–30 DeferQualityUpdatesPeriodInDays Ring stagger (2/7/14)
Feature update deferral (days) Delay feature offer 0 0–365 DeferFeatureUpdatesPeriodInDays Leave 0 when using a feature profile
Upgrade to latest Windows 11 Offer eligible Win10 → Win11 No Yes / No AllowWindows11Upgrade (deployment) Only as a deliberate migration lever

The User experience blade — this is where compliance and disruption are actually decided:

Setting What it controls Default Valid range / values Maps to CSP When to change
Automatic update behaviour How install/restart happens Auto install + restart at scheduled time Reset to default / Notify / Auto install at maintenance / Auto install+restart at scheduled / Auto install+restart w/o control AllowAutoUpdate Prefer deadline model over fixed schedule
Active hours Window with no auto-reboot 8:00–17:00 (or user-set) Any 1–18h window; up to 18h span ActiveHoursStart / ActiveHoursEnd Match the working day + shifts
Restart checks Skip pre-restart checks (battery etc.) Allow (checks on) Allow / Skip SetDisablePauseUXAccess-adjacent Almost never skip
Deadline for feature updates (days) Force feature install after offer Not configured 0–30 ConfigureDeadlineForFeatureUpdates Guarantee feature compliance
Deadline for quality updates (days) Force quality install after offer Not configured 0–30 ConfigureDeadlineForQualityUpdates Set this — it drives compliance
Grace period (days) Minimum days before forced restart 0 0–7 ConfigureDeadlineGracePeriod 2–3 days protects offline devices
Auto-reboot before deadline Reboot outside active hours pre-deadline Not configured Yes / No ConfigureDeadlineNoAutoReboot (inverse) Yes = fewer forced reboots at deadline
User pause access Let user pause updates Enabled Enabled / Disabled SetDisablePauseUXAccess Disable on managed fleet; enable on critical
Option to check for updates Show/hide “Check for updates” Enabled Enabled / Disabled SetDisableUXWUAccess Rarely hidden

Deadline-driven compliance beats the fixed schedule

The legacy model — “auto-install and restart at 3am” — is fragile: laptops are asleep at 3am, or in a bag, and miss the window repeatedly. The modern model is deferral + deadline + grace + active hours, and it is far more reliable. You say: offer this update after 7 days (deferral), give the user 3 days to reboot on their own terms (deadline), never inside active hours, but guarantee at least 2 days even if they were offline (grace). After deadline+grace elapses, Windows force-restarts outside active hours. Set these four and let Windows manage the timing; do not micromanage a fixed clock.

A worked timeline for a Broad-ring device with 7-day deferral, 3-day deadline, 2-day grace, active hours 08:00–18:00:

Day Event Device state
Patch Tuesday (D0) CU released Not yet offered (deferred)
D+7 Deferral elapses Update offered; download begins
D+7 Download + stage complete “Restart to finish” notification
D+8, D+9 User prompted, defers manually Countdown to deadline
D+10 Deadline reached (7+3) Forced install pending outside active hours
D+10, 18:05 Outside active hours Auto-restart; CU installed
(if offline until D+9) Grace guarantees +2 Deadline effectively D+11, still enforced

Driving the ring as code with Graph

If you manage Intune as code, the update ring is a windowsUpdateForBusinessConfiguration resource under deviceManagement/deviceConfigurations. Create a Broad ring: 7-day quality deferral, 3-day deadline, 2-day grace, active hours 08:00–18:00, user pause disabled.

# Create the Broad ring via Microsoft Graph (beta). Uses your az login token.
az rest --method POST \
  --url "https://graph.microsoft.com/beta/deviceManagement/deviceConfigurations" \
  --headers "Content-Type=application/json" \
  --body '{
    "@odata.type": "#microsoft.graph.windowsUpdateForBusinessConfiguration",
    "displayName": "WUfB - Ring 2 - Broad",
    "deferQualityUpdatesPeriodInDays": 7,
    "deferFeatureUpdatesPeriodInDays": 0,
    "qualityUpdatesDeadlineInDays": 3,
    "featureUpdatesDeadlineInDays": 5,
    "deadlineGracePeriodInDays": 2,
    "deadlineNoAutoRebootInDays": 0,
    "businessReadyUpdatesOnly": "businessReadyOnly",
    "automaticUpdateMode": "autoInstallAndRestartAtMaintenanceTime",
    "activeHoursStart": "08:00:00.0000000",
    "activeHoursEnd": "18:00:00.0000000",
    "userPauseAccess": "disabled",
    "driversExcluded": true,
    "allowWindows11Upgrade": false
  }'

Note deferFeatureUpdatesPeriodInDays: 0 and driversExcluded: true — the ring defers only quality updates and hands features to a feature profile and drivers to a driver profile. Assignment is a separate call; creation alone does nothing until assigned:

# Assign the ring to the Broad Entra group (creation != assignment)
az rest --method POST \
  --url "https://graph.microsoft.com/beta/deviceManagement/deviceConfigurations/<ringId>/assign" \
  --headers "Content-Type=application/json" \
  --body '{
    "assignments": [
      { "target": {
          "@odata.type": "#microsoft.graph.groupAssignmentTarget",
          "groupId": "<broad-ring-group-id>" } }
    ]
  }'

az rest reuses your az login token, so the signed-in identity needs an Intune admin role and consent for DeviceManagementConfiguration.ReadWrite.All. For unattended automation, use a service principal with that application permission instead of a delegated user token.

Feature update profiles: pinning the target Windows version

Feature updates are the dangerous ones — they change the OS build, and app-compat regressions live here. The correct posture is to pin the feature version explicitly with a feature update profile rather than letting devices drift to whatever is current. A pinned device below the target upgrades to the target and then stays there even when a newer release ships; a device already at the target holds.

Create the profile under Devices > Windows > Feature updates for Windows 10 and later. You choose a target version and a rollout strategy:

Rollout option Behaviour Best for Trade-off
Make available as soon as possible All assigned devices start immediately Preview/pilot rings No natural stagger; you ring via assignment
Make available on a specific date Deployment service holds until your date Coordinating with a change window Still “all at once” on that date
Gradual rollout Service ramps the offer across start→end with a cadence Large broad rings Longer tail; needs a start and end date

Gradual rollout is the safest for large fleets: you set a start date, an end date, and how many days between each batch, and the deployment service releases the offer to slices of the assigned population over that window. Even inside one broad ring you get a mini-ringed rollout for free.

The feature-profile fields and how to reason about each:

Field What it sets Values Notes
Feature update version The pinned TargetReleaseVersion e.g. “Windows 11, version 23H2” Devices won’t go past this
Rollout Availability strategy ASAP / scheduled / gradual Gradual for broad
Rollout start date First offer date date Required for scheduled/gradual
Rollout end date Last batch date date Gradual only
Days between groups Cadence of gradual batches integer days Gradual only
Uninstall (rollback) window Days to allow feature rollback 2–60 (default 10) Policy/Update/FeatureUpdateUninstallPeriod

The dual-mechanism conflict — the classic silent stuck

A feature update profile and an update ring’s feature deferral must not both act on features. If you use a feature profile, set the ring’s feature update deferral to 0. The profile is authoritative via the deployment service; a non-zero deferral on the ring is a second mechanism negotiating the same offer, and the device appears stuck because two systems are fighting over one release train. This is the modern equivalent of the old WSUS “dual scan” problem, and it is the number-one cause of “feature update never arrives, no error shown.” Let one mechanism own each train: feature profile owns features, ring owns quality, driver profile owns drivers.

Advancing the fleet to a new feature version is a new profile, not an in-place edit for a major jump. Create the next profile pointing at the new version, assign it to Ring 0/1, validate, then expand assignment down the rings. Critically, tie the version pin to the servicing lifecycle — a pinned version that reaches end of servicing stops receiving quality updates entirely, so a “safe” frozen build silently becomes an unpatched liability.

Query existing feature profiles and their state via Graph:

az rest --method GET \
  --url "https://graph.microsoft.com/beta/deviceManagement/windowsFeatureUpdateProfiles?\$select=id,displayName,featureUpdateVersion,rolloutSettings,deployableContentDisplayName"

Quality update profiles and expedited updates for zero-day response

Rings deliberately slow quality updates down. That is correct 11 months of the year and catastrophic the month a zero-day cumulative lands and your own 7-day deferral is now delaying the patch against an actively-exploited vulnerability. Expedited quality updates solve this: they instruct the deployment service to install a specific named cumulative immediately, overriding deferral and most pause settings on the targeted devices, then force a restart within a short, configurable grace window.

Create it under Devices > Windows > Quality updates for Windows 10 and later. You pick the specific released cumulative (the catalog lists them by month/KB) and set how long the user has before the forced restart.

Expedite setting What it does Values Notes
Update to expedite The named CU to force Released CUs by month/KB Pick the specific rollup
Restart grace period Time before forced reboot e.g. 0 / 1 / 2 days Shorter for a live incident
Assignment Which devices Entra group Narrow first, then broaden

Behaviours you must understand before you rely on it in an incident:

Behaviour What happens Implication
Overrides quality deferral Reaches devices whose deferral hasn’t elapsed Zero-day lands regardless of ring
Overrides most pauses Reaches paused devices Pause won’t shield you from an expedite
Does not override feature-in-progress Won’t interrupt a feature install underway Pause feature rollouts during an incident
Installs the latest applicable CU A device months behind still lands on the chosen rollup No partial-state; cumulative wins
Needs deployment service + telemetry Requires diagnostic data flowing Blocked telemetry = expedite can’t act

Expedite is for emergencies, not your cadence. If you find yourself expediting every Patch Tuesday, your standard deferrals are too long — tune the rings, don’t lean on expedite. And even in an incident, target Ring 0 first for 30 minutes to confirm a clean install before broadening: a 30-minute pilot is cheap insurance against expediting a broken patch to 30,000 devices.

Driver and firmware update profiles with manual approval

Drivers are the release train most worth gating and the one that most reliably ruins a week when it goes wrong — a bad GPU, storage, or network driver from Windows Update can blue-screen a fleet in an afternoon. Driver update profiles (Devices > Windows > Driver updates for Windows 10 and later) offer two approval modes:

Mode Behaviour Deferral Best for Risk
Automatic Recommended drivers auto-approve after a set deferral 0–30 days Low-risk / homogeneous fleets A bad driver ships without review
Manual Nothing installs until you approve each driver n/a Managed enterprise endpoints Approval queue needs an owner

In manual mode the deployment service inventories the applicable drivers across the profile’s targeted devices and presents them as a catalog. Each entry shows the driver name, version, manufacturer, and how many devices it applies to. You approve (with a start date), decline, or leave pending each one. Microsoft classifies inventoried drivers:

Driver class Meaning Default action
Recommended Microsoft + OEM flag it broadly suitable Review and approve deliberately
Other Applicable but not surfaced as recommended Approve only with a specific reason

The manual driver workflow in practice:

  1. Create the manual driver profile and assign it to a ring group.
  2. Wait for the deployment service to populate applicable/recommended drivers — this is not instant; it depends on devices checking in and reporting inventory (often 24–48 hours after assignment).
  3. Review recommended drivers; approve the ones you want and set a future start date so you can stage per ring.
  4. Decline drivers you never want offered — e.g. a GPU driver you manage out-of-band through your OEM’s own tooling. Declining is reversible; when in doubt, decline and revisit.
  5. Monitor rollout state per driver in the profile.

This gives you the per-driver control WSUS driver classifications offered, without running WSUS, and it is per-driver rather than per-classification — finer-grained. Pair it with ExcludeWUDriversInQualityUpdate (the “Windows drivers = Block” ring setting) so drivers only come through the approved profile, never sneaking in via a quality scan.

Windows Autopatch: outsourcing the cadence

If operating rings by hand is more than your team wants to own, Windows Autopatch is Microsoft running the whole thing for you: it creates its own deployment rings (Test, First, Fast, Broad), moves devices through them automatically, applies quality/feature/driver/firmware updates on a managed cadence, halts and rolls back on detected problems, and surfaces its own reporting. It is included with the Windows Enterprise E3/E5 licensing many organisations already hold and is enabled from Tenant administration > Windows Autopatch.

Autopatch vs self-managed rings, so you choose deliberately:

Dimension Self-managed update rings Windows Autopatch
Who designs rings You Microsoft (Test/First/Fast/Broad)
Who sets cadence/deadlines You Microsoft, with some tenant controls
Ring membership Your Entra groups Autopatch auto-distributes devices
Feature-version control Your feature profiles Autopatch manages, you set target
Driver approval Your manual/auto profiles Managed, with policy controls
Halt/rollback on issues You react Automatic service-side halt
Reporting Intune WUfB reports Autopatch reports + Intune
Effort High (you run it) Low (Microsoft runs it)
Control Maximum Reduced but curated
Licence Any Intune Windows Ent E3/E5 (typically)

Autopatch and hand-built rings are not either/or across the fleet — some organisations run Autopatch for the broad population and keep a hand-managed critical-exclusion ring for OT/clinical devices Autopatch shouldn’t touch. Whichever you pick, the discipline underneath is identical: separate trains, gated rings, deadline-driven compliance, readiness before feature jumps.

Monitoring: WUfB reports, readiness, and safeguard holds

Intune’s WUfB reporting lives in Devices > Monitor (and Reports > Windows updates), and all of it depends on diagnostic data reaching Microsoft. The reports you will live in:

Report What it shows Where Use it for
Windows update rings report Per-ring, per-device: up to date / in progress / error Devices > Monitor Day-to-day quality compliance
Feature update device readiness Devices not ready for a target build + why (holds) Reports > Windows updates Before every feature advance
Feature update failures Devices that failed a feature update + error Devices > Monitor Triage stuck feature rollouts
Windows expedited update failures Devices that failed an expedite Devices > Monitor Confirm zero-day landed
Driver update report Per-driver rollout + failure state In the driver profile Track approved-driver rollout
Windows quality update report (Org/tenant) Aggregate CU adoption across the org Reports > Windows updates Executive/audit view

Feature update readiness and safeguard holds

Before pushing a feature update, the feature update device readiness report surfaces devices that are not ready for the target version — flagging safeguard holds where Microsoft knows a specific driver or app breaks on the new build. This report is the gate before every feature jump. Safeguard holds are routinely misread as bugs; they are Microsoft blocking the offer to protect the device.

Readiness state Meaning What to do
Ready Device can take the target build Let it upgrade
Not ready — safeguard hold Microsoft blocks it (known regression) Fix the root cause; wait for the hold to clear
Not ready — capability blocked Hardware/config doesn’t meet requirements Remediate hardware/config
Error Readiness couldn’t be evaluated Check diagnostic data flow

You can force past a safeguard hold by disabling safeguards in the feature-update path, but do not — barring a documented, Microsoft-sanctioned exception with a known workaround. The hold exists because Microsoft has telemetry showing the build breaks that configuration. Forcing past it trades a deferred update for a likely blue-screen and a support incident. Work the root cause — a patched vendor driver, an updated app — and let the held devices upgrade naturally once the hold clears.

Making the reports work

Empty reports are almost always a telemetry problem, not a patching problem:

Reporting prerequisite Requirement Symptom if missing
Diagnostic data level Required or higher All reports empty / partial
Allow device name in telemetry Enabled Devices show as anonymous IDs
Data-processor configuration (EU-DPC) Enabled where required Reports blocked in-region
Devices check in Recent MDM sync Stale / missing device rows
No conflicting telemetry GPO/policy WUfB policy wins Telemetry silently downgraded

Set diagnostic data via a Settings Catalog policy or the ring; the practical minimum for full WUfB reporting is Required with device name allowed.

Pause and resume — the safety valve

When something goes wrong mid-rollout, you pause. Pausing stops new offers for a class of update while you investigate, without ripping out policy. You can pause quality and feature updates independently, from the device (if user pause is enabled) or centrally via policy, for a bounded window.

Pause aspect Quality updates Feature updates
Max pause duration 35 days 35 days
Where to pause Ring policy / device (if allowed) Ring policy / device (if allowed)
Effect No new quality offers No new feature offers
Auto-resume After 35 days, forced scan After 35 days, forced scan
Overridden by expedite Yes — expedite still lands N/A (expedite is quality)

Two rules: pause narrowly (the affected ring, not the whole fleet — pausing everyone stops security patches for a security scare that may not affect everyone), and remember pause has a hard 35-day ceiling after which Windows force-resumes and scans, so pause is a pressure valve, not a hiding place. Resume deliberately once the issue is understood; don’t let a pause quietly expire and surprise you with a flood of deferred updates.

Architecture at a glance

Picture the system as four release trains flowing left to right from Intune’s control plane, through the Windows Update for Business layer, to the device — with reporting flowing back the other way. On the left sits the Intune control plane: four policy authors (update ring, feature profile, quality/expedite profile, driver profile) each targeting Entra ID security groups that define the rings (Ring 0 Preview → Ring 1 Pilot → Ring 2 Broad → Ring 3 Critical exclusion). These are not four copies of one thing; they are four independent trains that must never fight over the same track.

In the middle, two engines carry the trains. The classic Policy/Update CSP path takes the update ring’s settings — DeferQualityUpdatesPeriodInDays, ConfigureDeadlineForQualityUpdates, ActiveHoursStart/End, ConfigureDeadlineGracePeriod — and writes them to the device, where the Windows Update Agent decides locally when to scan, download, and reboot within active hours against the deadline. In parallel, the Windows Update for Business deployment service — a Microsoft cloud orchestrator — carries the feature, expedite, and driver trains: it holds a feature offer until your gradual-rollout date releases the next batch, forces an expedited CU past deferral in an incident, and surfaces the applicable-driver catalog for manual approval. Both engines pull actual update content from the Microsoft Update service / CDN directly over the internet; Intune never touches the bits, only the policy. If you’ve added Delivery Optimization or Connected Cache, the content hop is served peer-to-peer or from a local cache to spare the WAN, but the decision logic is unchanged.

On the right is the device, running the Windows Update Agent under the resolved policy in HKLM\...\PolicyManager\current\device\Update. Two control signals flow back toward Intune. First, diagnostic data streams from the device to Microsoft — the oxygen for the whole right-to-left reporting path; cut it and the reports go dark. Second, safeguard holds flow from Microsoft to the deployment service and the readiness report: when Microsoft’s telemetry shows the device’s configuration breaks on a target feature build, it stamps a hold that blocks the offer and lights up the readiness report as “not ready.” The reporting plane — Windows update rings report, feature update readiness, quality/feature/expedite failure reports — aggregates all of this back in Intune. Read the architecture as: four trains, two engines, one content source, telemetry back for reporting, holds back for protection. Every troubleshooting move in the next section is “which train, which engine, is telemetry flowing, is a hold in play?”

Real-world scenario

Meridian Health runs ~28,000 Windows 11 endpoints across a hospital network and moved off WSUS to Intune update rings over a quarter. Two months in, the org-wide compliance dashboard looked healthy — 96% up to date on quality updates — but the clinical-workstation fleet (Ring 3, the “critical exclusion” group of ~1,400 devices at nursing stations and in theatres) was stuck on Windows 11 22H2 while every other ring had advanced cleanly to 23H2. No errors surfaced anywhere. The devices simply never received the feature offer. The endpoint team spent a week assuming it was a network or licensing issue before looking at the policy layer.

The cause was the textbook dual-mechanism conflict. The platform team had a feature update profile pinning 23H2 assigned to all rings including Ring 3 — correct. But Ring 3’s update ring also carried a non-zero deferFeatureUpdatesPeriodInDays of 35 days, left over from WSUS-era settings someone had copied wholesale when building the rings. The feature profile (via the deployment service) and the ring’s 35-day feature deferral (via Policy/Update) were both negotiating the same feature offer, and the ring’s long deferral kept winning silently — no error, no report row, just a device that appeared idle. Compounding it, a subset of those clinical devices ran a vendor imaging client that Microsoft had placed a safeguard hold against for 23H2, so even after the deferral was fixed, the readiness report correctly flagged them as not ready.

The fix was two-part and it mattered which part came first. First, they zeroed out the feature deferral on the Ring 3 update ring so the profile became the single authority for the feature train:

# Make the feature profile authoritative: zero the ring's feature deferral
az rest --method PATCH \
  --url "https://graph.microsoft.com/beta/deviceManagement/deviceConfigurations/<ring3Id>" \
  --headers "Content-Type=application/json" \
  --body '{
    "@odata.type": "#microsoft.graph.windowsUpdateForBusinessConfiguration",
    "deferFeatureUpdatesPeriodInDays": 0
  }'

Within 48 hours, roughly 1,100 of the 1,400 devices picked up the 23H2 offer through the profile’s gradual rollout and upgraded during off-shift active-hours windows without a single unplanned reboot on a live workstation — because the deadline+grace+active-hours settings did exactly their job.

Second — and this is the discipline lesson — they did not disable the safeguard hold on the remaining ~300 devices running the vendor imaging client. Forcing past it would have shipped a known-broken imaging experience to devices used in clinical procedures. Instead they opened a case with the imaging vendor, got a patched client, validated it on Ring 0, deployed it via a Win32 app, and let the held devices upgrade naturally once Microsoft’s telemetry saw the fixed client and cleared the hold. Total time to full 23H2 compliance on the clinical fleet: three weeks, zero clinical incidents.

The scenario as a timeline, because the order is the lesson:

Time Symptom / action Effect What it should have been
Week 0 Migrated to rings; copied WSUS deferrals Ring 3 carries 35-day feature deferral Zero feature deferral when using a profile
Week 8 Ring 3 stuck on 22H2, no errors Team assumes network/licensing Check policy layer first: two mechanisms?
Week 9, D1 Found ring deferral fighting the profile Root cause identified
Week 9, D1 PATCH deferFeatureUpdatesPeriodInDays: 0 ~1,100 devices upgrade in 48h Correct fix — one owner per train
Week 9, D3 ~300 devices still “not ready” Safeguard hold on imaging client Treat hold as signal, not friction
Week 11 Vendor client patched, validated, deployed Hold clears; devices upgrade naturally Fix root cause, never force the hold

Advantages and disadvantages

The WUfB-through-Intune model — policy-driven, cloud-orchestrated, content pulled from Microsoft — is a large upgrade on WSUS for most fleets, but it has sharp edges. Weigh it honestly:

Advantages Disadvantages
No update infrastructure to run — no WSUS server, no content on-prem to patch and back up You depend on devices reaching Microsoft’s update endpoints; no offline/air-gapped story without extra tooling
Four independent release trains, each ringed and gated separately Four policy types to understand; misassigning one (e.g. feature deferral + profile) silently wedges devices
Deadline + grace + active hours gives real compliance without ambushing users Defaults are lax (deferral 0, no deadline); you must configure compliance in, it’s not automatic
Deployment service gives rich per-device state for feature/driver/expedite Classic ring state is thinner; some issues only visible on the device itself
Expedited updates ship a zero-day in hours, overriding your own deferrals Easy to lean on expedite as a crutch, hiding rings that are tuned too slow
Per-driver approval matches WSUS control without WSUS Driver inventory populates slowly (24–48h); not instant, frustrating in an incident
Safeguard holds protect you from known-bad feature builds automatically Holds are opaque — you often can’t self-diagnose which driver/app triggered one without the readiness report
Windows Autopatch can outsource the whole cadence Reporting is entirely telemetry-dependent — block diagnostic data and you’re flying blind

The model is right for standard managed Windows fleets that can reach the internet and want to stop operating patch infrastructure. It bites hardest on air-gapped or heavily network-restricted environments (where the internet dependency is a wall), on teams that migrate from WSUS by copying old numbers (recreating dual-scan conflicts), and on anyone who blocks telemetry for privacy without realising it blinds their own compliance reporting. Every disadvantage is manageable — but only if you know it exists, which is the point of this article.

Hands-on lab

Build a complete ring — an Entra group, an update ring with deadline-driven compliance, a pinned feature profile with the feature deferral correctly zeroed — validate the policy on a device, then tear it down. Runs against a test tenant; use one or two pilot devices you don’t mind rebooting. Commands use az rest against Microsoft Graph beta (run az login first as an Intune admin).

Step 1 — Create the pilot Entra security group.

GROUP=$(az rest --method POST \
  --url "https://graph.microsoft.com/v1.0/groups" \
  --headers "Content-Type=application/json" \
  --body '{
    "displayName": "WUfB-Ring1-Pilot",
    "mailEnabled": false,
    "mailNickname": "wufb-ring1-pilot",
    "securityEnabled": true
  }' --query id -o tsv)
echo "Group id: $GROUP"

Expected: a GUID printed. Add a test device’s Entra object ID as a member via the group’s members/$ref endpoint (or in the portal).

Step 2 — Create the Pilot update ring (2-day quality deferral, 3-day deadline, 2-day grace, feature deferral 0).

RING=$(az rest --method POST \
  --url "https://graph.microsoft.com/beta/deviceManagement/deviceConfigurations" \
  --headers "Content-Type=application/json" \
  --body '{
    "@odata.type": "#microsoft.graph.windowsUpdateForBusinessConfiguration",
    "displayName": "WUfB - Ring 1 - Pilot",
    "deferQualityUpdatesPeriodInDays": 2,
    "deferFeatureUpdatesPeriodInDays": 0,
    "qualityUpdatesDeadlineInDays": 3,
    "deadlineGracePeriodInDays": 2,
    "businessReadyUpdatesOnly": "businessReadyOnly",
    "automaticUpdateMode": "autoInstallAndRestartAtMaintenanceTime",
    "activeHoursStart": "08:00:00.0000000",
    "activeHoursEnd": "18:00:00.0000000",
    "userPauseAccess": "disabled",
    "driversExcluded": true
  }' --query id -o tsv)
echo "Ring id: $RING"

Expected: a GUID. deferFeatureUpdatesPeriodInDays: 0 is deliberate — the feature profile in Step 4 will own features.

Step 3 — Assign the ring to the pilot group.

az rest --method POST \
  --url "https://graph.microsoft.com/beta/deviceManagement/deviceConfigurations/$RING/assign" \
  --headers "Content-Type=application/json" \
  --body "{\"assignments\":[{\"target\":{\"@odata.type\":\"#microsoft.graph.groupAssignmentTarget\",\"groupId\":\"$GROUP\"}}]}"

Expected: HTTP 200 and an assignment object echoed back. Creation without this call does nothing.

Step 4 — Create and assign a feature update profile pinning the target version. Replace the version string with a currently-serviced release.

FEAT=$(az rest --method POST \
  --url "https://graph.microsoft.com/beta/deviceManagement/windowsFeatureUpdateProfiles" \
  --headers "Content-Type=application/json" \
  --body '{
    "displayName": "Feature - Pin Win11 23H2 - Pilot",
    "featureUpdateVersion": "Windows 11, version 23H2",
    "rolloutSettings": { "offerStartDateTimeInUTC": null,
                          "offerEndDateTimeInUTC": null,
                          "offerIntervalInDays": null }
  }' --query id -o tsv)
az rest --method POST \
  --url "https://graph.microsoft.com/beta/deviceManagement/windowsFeatureUpdateProfiles/$FEAT/assign" \
  --headers "Content-Type=application/json" \
  --body "{\"assignments\":[{\"target\":{\"@odata.type\":\"#microsoft.graph.groupAssignmentTarget\",\"groupId\":\"$GROUP\"}}]}"

Expected: two GUIDs and a 200. Null rollout dates mean “as soon as possible.”

Step 5 — Force a policy sync and validate on the device. On the enrolled test device (elevated PowerShell), trigger an MDM sync and read the resolved policy the Update Agent is honouring:

# Force an Intune (MDM) sync so the new policy lands promptly
Get-ScheduledTask | Where-Object { $_.TaskName -like "*PushLaunch*" } |
  Start-ScheduledTask

# Resolved WUfB policy the Windows Update Agent is actually honouring
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\PolicyManager\current\device\Update" |
  Format-List DeferQualityUpdatesPeriodInDays, DeferFeatureUpdatesPeriodInDays,
              ConfigureDeadlineForQualityUpdates, ConfigureDeadlineGracePeriod,
              ActiveHoursStart, ActiveHoursEnd, TargetReleaseVersion, ProductVersion

Expected (after the sync lands): DeferQualityUpdatesPeriodInDays = 2, DeferFeatureUpdatesPeriodInDays = 0, ConfigureDeadlineForQualityUpdates = 3, active hours 8/18, and TargetReleaseVersion / ProductVersion reflecting the pinned build.

Step 6 — Check installed updates and trigger a scan.

# Recent cumulative updates, newest first
Get-HotFix | Sort-Object InstalledOn -Descending |
  Select-Object -First 5 HotFixID, InstalledOn

# Current OS build / feature version
Get-ComputerInfo -Property WindowsProductName, OsVersion, OsBuildNumber

# Trigger a Windows Update scan (the agent then follows your deferral/deadline)
UsoClient StartScan

Expected: a short list of KBs, the current build number, and a scan kicked off. The device now honours the ring’s deferral and deadline for future quality updates and the profile’s pin for features.

Validation checklist. You created a ring group, an update ring with real deadline-driven compliance, and a feature profile with the feature deferral correctly zeroed, assigned all of it, and confirmed the resolved policy on the device via PolicyManager. The single most important validation is that DeferFeatureUpdatesPeriodInDays = 0 while TargetReleaseVersion is set — proof the profile owns features and the ring owns quality, with no dual-mechanism conflict.

Step What you did What it proves
1–3 Group + ring + assignment Ring targets exactly the pilot group
4 Feature profile pinned + assigned Features controlled by the profile
5 Read PolicyManager on device Policy actually resolved on the endpoint
5 Feature deferral 0 + TargetReleaseVersion set No dual-mechanism conflict
6 Get-HotFix + UsoClient StartScan Device is scanning under the new policy

Teardown. Remove the assignments and delete the objects so nothing lingers:

az rest --method DELETE --url "https://graph.microsoft.com/beta/deviceManagement/windowsFeatureUpdateProfiles/$FEAT"
az rest --method DELETE --url "https://graph.microsoft.com/beta/deviceManagement/deviceConfigurations/$RING"
az rest --method DELETE --url "https://graph.microsoft.com/v1.0/groups/$GROUP"

Cost note. Everything here is Intune/Entra configuration — no per-object charge. The only “cost” is a test device reboot; do the lab on a machine you can restart.

Common mistakes & troubleshooting

The failure modes are predictable and most are silent — an update that never arrives with no error is the norm, not the exception. First the scannable playbook, then the confirm-detail for the ones that bite hardest.

# Symptom Root cause Confirm (exact command / portal path) Fix
1 Feature update never arrives, no error, dashboard “healthy” Ring feature deferral fighting a feature profile (dual mechanism) Device: Get-ItemProperty ...\PolicyManager\...\Update shows DeferFeatureUpdatesPeriodInDays > 0 and TargetReleaseVersion set Set ring feature deferral to 0 (deferFeatureUpdatesPeriodInDays: 0) — profile owns features
2 All WUfB reports empty despite patching working Diagnostic data below Required (another policy blocks it) Reports read empty; check HKLM\...\DataCollection / Settings Catalog telemetry level Set diagnostic data to Required + allow device name
3 Device on the wrong deferral / cadence Device is in two update rings Intune device > policies shows a ring conflict; audit group membership Ensure exactly one ring per device; remove overlap
4 Feature update flagged “not ready”, won’t install Safeguard hold — known regression on target build Feature update readiness report: state = safeguard hold Fix root cause (driver/app); wait for hold to clear — do not force
5 Update stuck “downloading” / “pending install” for days Update Agent wedged; content or component store issue %windir%\WindowsUpdate.log; UsoClient StartInteractiveScan DISM /Online /Cleanup-Image /RestoreHealth; restart Update Orchestrator; re-scan
6 Forced reboot hit a user mid-workday Active hours unset / too narrow, or no deadline model PolicyManager shows ActiveHoursStart/End wrong; no deadline configured Set active hours to the working day; use deadline+grace, not fixed schedule
7 Pinned build stopped getting quality updates Feature version pinned past end of servicing Get-ComputerInfo OsVersion vs lifecycle calendar Advance the feature profile to a serviced version
8 Approved driver never installs Drivers arriving via quality scan / profile not owning them Ring “Windows drivers” = Allow; driver not in profile catalog Set ring drivers = Block; approve driver in the profile
9 Expedited zero-day didn’t reach some devices Telemetry blocked, or device offline / feature in progress Expedited update failures report; check diagnostic data Fix telemetry; expedite doesn’t interrupt an in-progress feature
10 Devices flood with updates after a “quiet” period A pause silently hit its 35-day ceiling and force-resumed Ring shows pause expired; sudden scan across fleet Resume deliberately, ringed; don’t let pauses expire
11 New device gets no updates for hours after enrolment Dynamic-group processing lag — device in no ring yet Entra group membership not yet populated Add a fallback broad ring; accept dynamic lag
12 Feature update fails with 0xC1900101 (rollback) Driver incompatibility during upgrade (SafeOS/setup phase) setuperr.log / $WINDOWS.~BT\Sources\Panther; error 0xC1900101 Update the offending driver; retry; often a hold follows
13 Update error 0x80070005 (access denied) Permissions / component store corruption WindowsUpdate.log; sfc /scannow sfc /scannow; DISM /RestoreHealth; re-scan
14 Error 0x8024xxxx scanning for updates Update Agent can’t reach WU / proxy / firewall block WindowsUpdate.log shows connection failure to WU endpoints Allow WU endpoints/CDN through proxy; verify DNS

The expanded detail for the entries that cause the most wasted time:

1. Feature update never arrives, no error, dashboard healthy. The dual-mechanism conflict — the single most common WUfB stuck-update cause. A feature profile (deployment service) pins TargetReleaseVersion, but the ring also carries a non-zero feature deferral (Policy/Update). Two systems negotiate one offer; the ring’s deferral wins silently with no error row. Confirm: on the device, Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\PolicyManager\current\device\Update" shows both DeferFeatureUpdatesPeriodInDays > 0 and TargetReleaseVersion populated. Fix: deferFeatureUpdatesPeriodInDays: 0 on the ring — one owner per train.

2. All reports empty despite patching working. Reporting is telemetry-fed; if diagnostic data is below Required (a Settings Catalog policy, a GPO, or the ring’s own setting), Intune’s WUfB reports and the deployment service both go dark even while the Update Agent patches fine locally. Confirm: reports read empty; check the telemetry level under HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection or your Settings Catalog policy. Fix: set diagnostic data to Required and allow device name — full reporting typically appears within a day.

4. Feature update “not ready”, won’t install — safeguard hold. Microsoft has telemetry that this device’s driver/app config regresses on the target build and has blocked the offer. Confirm: the feature update device readiness report shows the device with a safeguard-hold reason. Fix: address the root cause (patch the driver/app), then let the device upgrade once the hold clears. Do not disable safeguards to force past it — you’re overriding known-bad telemetry.

5. Update stuck downloading / pending for days. The Windows Update Agent itself is wedged, or the component store is corrupt. Confirm: read %windir%\WindowsUpdate.log (generate it with Get-WindowsUpdateLog on modern Windows, which merges the ETL traces) for the failing phase; try UsoClient StartInteractiveScan. Fix: repair the component store, restart the orchestrator, re-scan:

# Repair the Windows component store, then reset the update pipeline
DISM /Online /Cleanup-Image /RestoreHealth
Restart-Service -Name UsoSvc -Force        # Update Orchestrator
Restart-Service -Name wuauserv -Force      # Windows Update
UsoClient StartInteractiveScan

12. Feature update fails with 0xC1900101 (rollback). A 0xC1900101-family error means Windows Setup rolled back the upgrade during the SafeOS or first-boot phase — almost always a driver incompatibility. Confirm: read the setup logs under $WINDOWS.~BT\Sources\Panther\setuperr.log; the 0xC1900101 is paired with an extended code pointing at the phase. Fix: update the offending driver (storage and graphics are the usual culprits), retry the upgrade; if Microsoft’s telemetry catches the pattern, a safeguard hold may follow, which is the system working.

Best practices

Security notes

Cost & sizing

WUfB through Intune has effectively no per-update licensing cost beyond the Intune/Entra licences you already hold — there is no WSUS server to run, no content storage to provision, no update-infrastructure VMs to patch and back up. That alone is the headline saving versus a WSUS estate. The costs that do exist are indirect:

A rough sizing picture: a self-managed model for ~28,000 devices is one or two endpoint engineers’ part-time attention plus the WAN cost of feature updates (mitigated by DO/Connected Cache to a fraction of naive egress). Autopatch removes most of that engineering time at the cost of the E3/E5 licence (which such an org typically already has) and reduced fine-grained control. There is no free tier to speak of — WUfB is a capability of the Windows + Intune licences, not a metered service — so “cost” here is really “engineering time vs Autopatch, and WAN bandwidth vs caching.”

Interview & exam questions

1. How do Intune’s Windows-update policy types map to WUfB, and which use the deployment service? Update rings write classic Policy/Update CSP settings the device’s Update Agent honours locally. Feature update profiles, quality (expedite) profiles, and driver update profiles run through the Windows Update for Business deployment service, a Microsoft cloud orchestrator that holds offers, ramps gradual rollouts, and tracks rich per-device state. The distinction matters at troubleshooting time — deployment-service objects expose per-device rollout state in Graph; classic rings you read on the device.

2. Why does a feature update sometimes never arrive with no error shown? The dual-mechanism conflict: a feature update profile pins TargetReleaseVersion while the update ring also carries a non-zero feature deferral. Two systems negotiate the same offer and the ring’s deferral wins silently. Fix by setting the ring’s deferFeatureUpdatesPeriodInDays to 0 so the profile is the single authority for features.

3. Explain deferral vs deadline vs grace period. Deferral delays when an update is offered (0–30 days quality, 0–365 feature). Deadline forces installation and reboot N days after the offer — this is what guarantees compliance. Grace period is a minimum the user always gets even if the deadline has already elapsed (protecting long-offline devices). Deferral without a deadline is how fleets drift; the deadline turns “offered” into “installed.”

4. What is a safeguard hold and what should you do about it? When Microsoft’s telemetry shows a specific device configuration regresses on a target feature build, it places a safeguard hold blocking that offer to protect the device. It’s signal, not a bug. Address the root cause (patch the driver/app) and let the device upgrade once the hold clears; do not disable safeguards to force past it — you’d be overriding known-bad telemetry for a likely support incident.

5. How do you ship a zero-day patch to a whole fleet in hours despite a 7-day deferral? Use an expedited quality update profile: select the specific released cumulative and a short restart grace window. Expedite overrides quality deferrals and most pauses via the deployment service, so it reaches even paused/deferred devices. Target Ring 0 first for a short pilot, then broaden — even in an incident a 30-minute pilot guards against expediting a broken patch.

6. Why do all the WUfB reports read empty even though devices are patching? The reports depend on Windows diagnostic data reaching Microsoft. If diagnostic data is below Required — downgraded by a Settings Catalog policy, GPO, or the ring — the reports and the deployment service go dark even while the Update Agent patches fine locally. Set diagnostic data to Required with device name allowed.

7. When would you choose Windows Autopatch over self-managed rings? When you want Microsoft to run the ring cadence, deadlines, feature/driver management, and halt/rollback for you — trading fine-grained control for far less engineering toil. Autopatch is typically included with Windows Enterprise E3/E5. Self-managed rings win when you need maximum control (e.g. a bespoke critical-exclusion ring for OT/clinical devices) or aren’t on the E3/E5 SKUs.

8. How do driver update profiles protect a fleet, and what’s the recommended mode? Manual mode inventories the applicable drivers across targeted devices and installs nothing until you approve each one (with a start date) — per-driver control matching WSUS classifications without WSUS. Manual is the right default for managed enterprise endpoints. Pair it with blocking drivers in the update ring so drivers only arrive via the approved profile, never a quality scan.

9. What does the grace period protect against, and what’s its valid range? It guarantees a device a minimum number of days before a forced restart even if its deadline has already passed — protecting a device that was off for weeks and would otherwise be force-rebooted the moment it comes online. Valid range is 0–7 days; 2–3 is a sane default.

10. A pinned feature version silently stops receiving quality updates. Why? The pinned release reached end of servicing. A pinned version only gets quality updates while it’s within its servicing lifecycle; past that, cumulative updates stop. Tie the feature-profile pin to the lifecycle calendar and advance it before servicing ends.

11. What are the pause limits and the risk of relying on pause? Quality and feature updates can each be paused independently for up to 35 days, after which Windows force-resumes and scans. The risk is a pause silently expiring and flooding devices with deferred updates, or pausing the whole fleet for a scare that affects only some devices. Pause narrowly (the affected ring) and resume deliberately.

12. A device shows 0xC1900101 on a feature update. What is it and how do you fix it? A 0xC1900101-family error means Windows Setup rolled back the upgrade during the SafeOS/first-boot phase — almost always a driver incompatibility (storage or graphics most often). Read $WINDOWS.~BT\Sources\Panther\setuperr.log for the phase, update the offending driver, and retry; a safeguard hold may follow if Microsoft catches the pattern.

These map primarily to MD-102 (Endpoint Administrator)manage, maintain, and protect devices; deploy Windows client; manage updates — with the identity/compliance-gating angle touching SC-300 and the Autopatch/servicing strategy relevant to MS-102. A compact cert map:

Question theme Primary cert Objective area
Rings, deferral/deadline, feature profiles MD-102 Manage Windows updates / servicing
Driver approval, expedite, Autopatch MD-102 Maintain and protect devices
Compliance gating on update status SC-300 / MD-102 Conditional Access + compliance
Diagnostic data / reporting MD-102 Monitor and report device health
Servicing strategy across the tenant MS-102 Manage device compliance and updates

Quick check

  1. You use a feature update profile and set a 30-day feature deferral on the same ring. What happens, and what’s the fix?
  2. Deferral is 7 days, deadline is 3 days, grace is 2 days. A device was powered off for the first 9 days after the CU released. Roughly when is it forced to install?
  3. All your WUfB reports are empty but Get-HotFix on a device shows updates installing fine. What’s the most likely single cause?
  4. A feature update readiness report flags a device as “not ready — safeguard hold.” What do you do, and what do you not do?
  5. A zero-day cumulative is released. Your broad ring has a 7-day quality deferral. How do you get it installed today, and what’s the one safety step even in an incident?

Answers

  1. The feature profile and the ring’s feature deferral both act on the feature offer — the dual-mechanism conflict — and the ring’s 30-day deferral wins silently, so the feature update appears stuck with no error. Fix: set the ring’s deferFeatureUpdatesPeriodInDays to 0 so the profile is the single authority for features.
  2. The offer arrives at day 7 (deferral). Deadline is 3 days later = day 10. But the device was offline until day 9, so the grace period guarantees it at least 2 days from when it could act — effectively around day 11, and it’s force-installed outside active hours then. Grace protects the offline device from being rebooted the instant it comes online.
  3. Diagnostic data is below Required — some policy (Settings Catalog, GPO, or the ring) downgraded telemetry, so the reports and deployment service go dark even though the Update Agent patches locally. Set diagnostic data to Required with device name allowed.
  4. Fix the root cause — patch the offending driver or app Microsoft’s telemetry flagged — and let the device upgrade naturally once the hold clears. Do not disable safeguards to force past it; you’d be overriding known-bad telemetry for a likely blue-screen and support incident.
  5. Create an expedited quality update profile for that specific released cumulative with a short restart grace window — expedite overrides the 7-day deferral and most pauses. The one safety step: target Ring 0 first for ~30 minutes to confirm a clean install before broadening, so you don’t expedite a broken patch fleet-wide.

Glossary

Next steps

You can now design rings, pin features, gate drivers, expedite zero-days, and unstick updates. Build outward:

IntuneWindows Update for BusinessUpdate RingsWUfBFeature UpdatesWindows AutopatchSafeguard HoldsEndpoint Management
Need this built for real?

Vinod is a Senior Cloud Architect (22+ yrs) — available for Azure / AWS / GCP architecture, landing zones, and migrations.

Work with me

Comments

Keep Reading