HomeNewsletterCommunityMVP FeedToolsArchiveBlogToday's NewsAboutServicesQuick Links★ Pro Subscribe free
← Back to Blog
Windows Server WDSConfiguration ManagerPXEDeprecationSecurity

Windows Deployment Services Is Being Deprecated — Here Is What Actually Changes

IA
Imran Awan
25 September 2026

On September 21, 2026, Microsoft published KB5129631, giving early notice that Windows Deployment Services (WDS) — the role most Windows admins still call "the PXE server" — is planned for deprecation starting with the next release of Windows Server. Nothing breaks today. But if you've read the last twelve months of WDS advisories in order, this announcement is not a surprise, it's the third act of a story that started with a critical vulnerability in January.

The short version

WDS is deprecated, not removed: it keeps working on Windows Server 2025 and every earlier supported release, on their normal lifecycles, and Microsoft has not named the release that will actually remove it. What's changing is the recommendation — Microsoft now points every WDS-dependent deployment (PXE boot, multicast, the management tools and CLIs) at Microsoft Configuration Manager instead. This deprecation follows two hardening phases Microsoft already shipped for a real vulnerability, CVE-2026-0386, which exposed WDS's "hands-free" Unattend.xml deployment files — often containing credentials — over an unauthenticated RPC channel. If you never touched the registry key from that hardening work, you should check it now, not after the next Server release ships.

The problem: a deprecation notice that's really the end of a longer story

Here's exactly what KB5129631 says, without the marketing gloss: starting with the next release of Windows Server, the WDS server role — Deployment Server and Transport Server role services, WDS-provided PXE boot, WDS multicast transport, WDS's management tools/CLIs/APIs, and the WinPE-WDS-Tools optional component — is deprecated. Microsoft names Microsoft Configuration Manager as the recommended replacement for OS deployment going forward.

That single announcement is easy to skim past if you don't run WDS yourself. What makes it worth a proper read is the timeline it caps off:

Read in order, this isn't "Microsoft killed a feature out of nowhere." It's a security team finding a real remote code execution path in a 20-year-old role, hardening it in two dated phases, and the platform team then concluding the underlying role isn't worth continuing to invest in. If you only heard about "the WDS thing" from a headline this week, you likely missed the two hardening updates that already changed WDS's default behavior back in January and April.

Note — spell it out on first use. Windows Deployment Services (WDS) is the built-in Windows Server role that lets client PCs boot over the network (via PXE — Preboot Execution Environment) and pull down a Windows image without a technician touching a USB drive or DVD. It has shipped as an in-box Server role since Windows Server 2008 and is the PXE engine many System Center Configuration Manager (now Microsoft Configuration Manager) environments quietly depend on for their "PXE-enabled distribution point" feature, even when admins think they're using ConfigMgr for everything.

Why it happens: deprecation vs. removal, and the CVE that got us here

Microsoft's own servicing documentation draws a sharp, specific line between these two words, and KB5129631 uses "deprecation" deliberately:

Deprecated: the component remains available and supported on the releases that already have it, following their normal servicing lifecycle — but it is "no longer recommended as the best solution" and Microsoft is not investing further engineering in it.

Removed: the feature is completely unavailable. It has been taken out of the product.

WDS today is deprecated, full stop — it is not removed, and Microsoft has not named a release or a date for removal. That distinction matters because the rest of the announcement is scoped tightly around it. Confirmed by Microsoft's own KB text:

The vulnerability that made this deprecation feel inevitable

The reason this announcement reads less like routine housekeeping and more like a foregone conclusion is CVE-2026-0386. WDS has a "hands-free" deployment mode that automates the Windows Setup screens for a PXE-booted client using an Unattend.xml answer file — a file that can legitimately contain local administrator credentials, domain join credentials, and other deployment secrets, by design. The vulnerability: that Unattend.xml gets served to the booting client over WDS's RemoteInstall share through an unauthenticated RPC channel. Any device on the same network segment as the WDS server can intercept it — no credentials, no prior access, just network proximity to a PXE boot in progress.

Watch out — this is a real credential-theft path, not a theoretical one. If your WDS server has ever pushed an Unattend.xml with a local admin password, a domain-join account, or any deployment secret baked in, and hands-free deployment was left in its default (insecure, with warnings only) or explicitly insecure state, that credential was broadcastable to anyone who could see PXE traffic on the wire. Treat this as a "rotate the credential" event, not just a "flip a registry switch" event, if you can't confirm your WDS server was already hardened before April 14, 2026.

Microsoft's hardening guidance is explicit that this vulnerability does not affect Configuration Manager — it's scoped to native WDS scenarios where Unattend.xml is exposed through the RemoteInstall share. That's the direct, technical reason ConfigMgr is the named replacement rather than just "the bigger, more featureful tool": it doesn't inherit this specific exposure.

How to verify: checking your own WDS exposure and dependency

Before deciding this doesn't apply to you, check three things on any Windows Server box you administer: whether the WDS role is actually installed, what state the hands-free hardening registry key is in, and whether Configuration Manager is quietly using that same WDS role underneath a PXE-enabled distribution point.

Step 1 — Confirm the WDS role is installed

PowerShell (Administrator) — on the server
Get-WindowsFeature -Name WDS, WDS-Deployment, WDS-Transport | Format-Table Name, InstallState

This is what a server actually running the role reports. The values below are illustrative, matching the real shape of a Windows Server 2025 box with WDS installed and configured:

Output — illustrative, role installed
Name InstallState ---- ----------- WDS Installed # the parent role is present WDS-Deployment Installed # PXE + image serving is present WDS-Transport Installed # multicast transport is present

If all three show Available instead of Installed, this deprecation doesn't apply to that box — move on. If any show Installed, keep going.

Step 2 — Check the hands-free hardening registry key

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WdsServer\Providers\WdsImgSrv\Unattend\
Value name (type)Healthy valueIf wrong
AllowHandsFreeFunctionality (REG_DWORD)0x0 — secure mode; blocks unauthenticated hands-free requests and disables the feature0x1 = insecure mode explicitly re-enabled; absent on a server patched before January 2026 = insecure default with warning-only logging

Read it directly rather than trusting whether you remember patching for this back in the spring:

PowerShell (Administrator)
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\WdsServer\Providers\WdsImgSrv\Unattend' -Name AllowHandsFreeFunctionality -ErrorAction SilentlyContinue
Gotcha. If the value doesn't exist at all, that is not the same as secure. Absent means the server is relying on whatever default shipped with its last update — insecure-with-warnings before the April 2026 update, secure-by-default after it. Check your server's update history against April 14, 2026 before assuming "no key present" means "already hardened."

Step 3 — Check the event log for real activity, not just config

Registry state tells you the policy; the event log tells you what actually happened. Microsoft's hardening guidance logs to a channel that isn't enabled by default in Event Viewer's normal view — you have to turn on "Show Analytic and Debug Logs" first:

PowerShell (Administrator)
wevtutil sl Microsoft-Windows-Deployment-Services-Diagnostics/Debug /e:true Get-WinEvent -LogName 'Microsoft-Windows-Deployment-Services-Diagnostics/Debug' -MaxEvents 50 | Where-Object { $_.Message -match 'unattend|hands-free|insecure' } | Select-Object TimeCreated, LevelDisplayName, Message

In secure mode you'll see a Warning logged any time an unattend.xml is requested over an insecure connection (the request is blocked, but WDS still tells you it was attempted — worth watching for signs of an old client image still trying the legacy path). In insecure mode you'll see an Error logged on every hands-free session, telling you plainly that the system is running with insecure WDS settings. Neither Microsoft's Phase 1 nor Phase 2 guidance publishes a fixed numeric Event ID for these two messages — match on the log channel and the message text, not an ID, for this specific check.

For general WDS/PXE service health (unrelated to the CVE, but useful if PXE boot itself is failing), the role's older diagnostic events do have documented numeric IDs from Microsoft's own historical Server documentation and are still worth knowing:

Event Viewer › Applications and Services Logs › Microsoft › Windows › Deployment-Services-Diagnostics
Event IDLevelMeaning
257ErrorWDS server failed to start - check the binding/network configuration first
259ErrorA WDS provider module failed to load - a provider DLL is missing, blocked, or corrupted
513Information/ErrorWDS server configuration settings were updated - useful as a change marker when auditing who touched WDS config
774InformationRogue detection: the PXE server was signalled to re-read its configuration (often follows an AD-authorization change)

Step 4 — Check whether Configuration Manager is quietly using this same WDS role

This is the check most teams skip, and it's the one most likely to surprise you. A ConfigMgr "PXE-enabled distribution point" doesn't reimplement PXE — it installs and configures the same in-box WDS role underneath itself. If you think you're already "on Configuration Manager, not WDS," check anyway:

PowerShell (Administrator) — on the site server or console box, ConfigMgr console module loaded
Get-CMDistributionPoint | Where-Object { $_.IsPXE -eq $true } | Select-Object NetworkOSPath, IsPXE, IsMulticast

Any distribution point returned here with IsPXE : True is running WDS underneath it, whether or not anyone on the team remembers installing WDS by hand. IsMulticast : True is the specific setting KB5129631 calls out for migration — WDS-dependent multicast transport is part of what's deprecated, separate from PXE boot itself.

The fix: hardening now, migrating to Configuration Manager next

These are two different jobs on two different timelines. Hardening the CVE is urgent and can be done in minutes. Migrating off WDS is a project, not a patch — do it deliberately, and don't let the deprecation headline push you into rushing it.

Immediate — confirm or set the secure hands-free registry value

Server Manager › Windows Deployment Services › Server › Properties › Client
  1. Confirm your server has installed a Windows Update released on or after April 14, 2026. If it has, hands-free deployment is already secure-by-default — Step 2 below is a verification, not a change.
  2. If the server predates that update, or you find AllowHandsFreeFunctionality set to 0x1, set it explicitly to secure mode:
PowerShell (Administrator)
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\WdsServer\Providers\WdsImgSrv\Unattend' ` -Name AllowHandsFreeFunctionality -PropertyType DWord -Value 0 -Force Restart-Service WDSServer -Force
Watch out. Setting this to secure mode (0x0) will break any imaging workflow that genuinely depends on hands-free WDS deployment with an Unattend.xml served over the RemoteInstall share, until you rework it. Test on a non-production imaging queue first, and have a rollback (0x1, then plan the real fix) ready if a production deployment pipeline breaks mid-rollout.

Next — plan the Configuration Manager migration, don't force it overnight

Microsoft's own framing is useful here: this is early notice specifically so you have time to identify WDS dependencies and plan, not a forced cutover. A sane order:

  1. Inventory every WDS-dependent server using Step 1-4 above across your environment, not just the one server you remember configuring.
  2. For servers already running ConfigMgr with PXE-enabled distribution points — you're closer than you think. The migration is mostly a hardening and configuration exercise on the existing ConfigMgr OSD feature, not a rebuild from zero.
  3. For standalone WDS servers with no ConfigMgr in the picture — this is the group with real project work ahead: stand up Configuration Manager (or extend an existing site's boundary groups to cover the affected subnets), rebuild boot images and task sequences in ConfigMgr's OSD model, and decommission the standalone WDS role once traffic has moved.
  4. Do not treat HTTP(S) Boot as your migration target. Microsoft's own KB explicitly separates it from Configuration Manager's PXE-based deployment — it solves a different problem (booting across network boundaries PXE broadcast can't cross) and isn't a drop-in replacement for what most WDS-dependent task sequences actually do today.
  5. Retire WDS-dependent multicast last, once you've confirmed ConfigMgr's own multicast (or a unicast fallback, for smaller environments) covers your bandwidth-constrained sites.
Tip. Because Microsoft hasn't named the release or date that actually removes WDS, there's no reason to treat this as a fire drill. Use the CVE hardening step above as your immediate action this week, and fold the Configuration Manager migration into your normal server refresh or OSD modernization planning — the same cadence you'd use for any other "deprecated, still supported" component.

Proof it worked: confirming PXE still boots after the change

Two different things need proving here: that the CVE hardening didn't silently break your imaging pipeline, and — once you've actually migrated a distribution point — that Configuration Manager's PXE path works without the WDS features being deprecated.

After hardening: re-check the registry and re-image one test device

Output — illustrative, after applying the fix
AllowHandsFreeFunctionality : 0 # secure mode confirmed set PS> Restart-Service WDSServer -Force PS> Get-Service WDSServer | Select-Object Status, StartType Status StartType ------ --------- Running Automatic # service came back up clean after the change

Then PXE-boot one non-production test device end to end. If it completes normally and your imaging task sequence doesn't reference Unattend.xml served over the hands-free path, you've confirmed the hardening didn't cost you anything. If it fails specifically at the unattend/answer-file stage, that workflow was the one genuinely depending on hands-free deployment — now you know exactly what to rebuild before you can decommission it.

After migration: confirm the distribution point serves PXE without the deprecated WDS multicast path

Command Prompt (Administrator) — on the distribution point
sc query WDSServer

SERVICE_NAME: WDSServer
    TYPE                : 10  WIN32_OWN_PROCESS
    STATE               : 4  RUNNING
    WIN32_EXIT_CODE   : 0  (0x0)

STATE: 4 RUNNING here is expected and correct even after a "migration to Configuration Manager" — remember, ConfigMgr's PXE-enabled distribution point runs on top of this exact service. What proves the migration, not just the plumbing, is that IsMulticast on that distribution point (from Step 4 above) now reads False, and a real image deployed to a test device over unicast completes in a comparable time to your old multicast deployment. That's the specific piece KB5129631 flags for retirement — the multicast transport, not PXE boot itself.

PowerShell Script — WDS Dependency & Hardening Report

A read-only script for this post is in Windows-Patching-Scripts. It checks the WDS role install state, the hands-free hardening registry value, and (if the ConfigMgr console module is present) whether any distribution point is running PXE or multicast on top of WDS — then exits 1 if anything still depends on WDS, 0 if it's already clear.

● Get-WdsDependencyReport.ps1 — read-only inventory: role state, hardening key, ConfigMgr PXE/multicast dependency
View all scripts on GitHub
Gotcha. This is a Windows Server / infrastructure change, not an endpoint policy — there is no Intune Proactive Remediation angle here the way there would be for a client-side setting. WDS runs on servers you manage directly; run Get-WdsDependencyReport.ps1 as a scheduled task or a one-off audit across your server fleet via whatever remote-execution tooling you already use for Windows Server (PowerShell remoting, your patching tool's script-run feature, or Configuration Manager's own script feature against server collections) — not through a device-management remediation pipeline built for client OS endpoints.

References

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

More from EndpointWeekly

Windows Server
September 2026 Patch Tuesday Is Breaking Remote Desktop Services…
September 2026 Patch Tuesday updates are causing Remote Desktop Services failures on…
Security
Microsoft Defender for Cloud Apps Retires Its Terminated-User…
Defender for Cloud Apps is replacing the legacy "Activity performed by terminated user"…
Security
CVE-2026-81963: The September 2026 Windows Update Stack…
CVE-2026-81963 is a Windows Update Stack elevation of privilege flaw rated 7.8 CVSS and…