Windows 11 version 25H2, which began rolling out on September 30, 2025, removes the WMIC command-line utility during the feature update. The underlying Windows Management Instrumentation (WMI) platform is untouched, but every script, scheduled task, and packaged application that still calls wmic.exe will break unless you take action now.

What Microsoft Actually Changed

The WMIC utility is a Feature on Demand (FoD) that was preinstalled by default in Windows 11 versions 23H2 and 22H2. In 25H2, that FoD is disabled by default. The upgrade does not delete wmic.exe from existing installations immediately; it simply leaves the feature turned off. You can confirm its status with PowerShell:

Get-WindowsCapability -Online | Where-Object Name -Like 'WMIC*'

If the capability is listed as not present, WMIC commands will fail with the familiar 'wmic' is not recognized error. Microsoft allows a temporary reinstallation through Settings or Deployment Image Servicing and Management (DISM):

  • Settings path: System > Optional features > View features > search for WMIC, install.
  • DISM command: DISM /Online /Add-Capability /CapabilityName:WMIC~~~~

But this is a stopgap. The company’s official deprecation notice, first posted for Windows 10 version 21H1, now warns that the utility is “scheduled for removal in a future Windows release.” That means the compatibility bridge will eventually disappear. Every WMIC call that isn’t migrated becomes a ticking upgrade bomb.

Why This Matters for Your Machines

Home and Small-Business Users

Most everyday tasks don’t rely on WMIC. If you never open Command Prompt or run custom scripts, the change is invisible. Some older PC diagnostic tools or one-off repair scripts pulled from forums may fail, but the typical home setup won’t notice.

IT Administrators and Power Users

This is where the pain lands. WMIC has been the Swiss Army knife of local and remote system queries for two decades. Inventory scripts that pull OS details, disk space, or hardware info; logon scripts that tag machines; software deployment wrappers; and even aging RMM (remote monitoring and management) components often contain a hidden wmic call. The 25H2 update is delivered to Windows 11 24H2 devices as an enablement package—a small, fast install—so it can surprise admins who assume a minor version bump won’t break automation.

A pilot device that suddenly stops reporting its disk free space or fails a post-imaging configuration step can trigger a cascade of ticket noise. The largest risk is the unknown dependency: a script sitting in a legacy share that ran quietly for years, now silenced, leaving compliance or inventory data silently incomplete.

Developers and Software Vendors

Packaged applications can invoke WMIC during install, repair, update, or uninstall. A product may appear to work fine after the upgrade but fail weeks later when a repair action triggers. Developers who maintain internal tools or ship products that rely on the utility need to test every lifecycle step on a 25H2 machine without WMIC installed.

A Timeline of Warnings: WMIC’s Long Goodbye

Microsoft has been signaling this day for years:

  • May 2021 (Windows 10 21H1): WMIC is first marked as deprecated in both the client and server releases. The notice explicitly states that the underlying WMI platform is unaffected; only the command-line tool is on the chopping block.
  • January 2024 update: The deprecation note is refreshed, clarifying that WMIC was a preinstalled FoD in Windows 11 22H2 and 23H2, and that in the “next release of Windows” it would be disabled by default.
  • September 2025: That next release arrives as Windows 11 25H2, accompanied by a fresh “courtesy reminder” on Microsoft’s deprecated features page.
  • The future: No specific removal date is given. The company only says “an upcoming Windows release.” The ambiguity is deliberate; it shifts the accountability onto organizations to finish their migrations on their own timeline.

Other deprecated components in the same list—like Adobe Type1 fonts, VBScript, and WordPad—have followed a similar pattern: first a deprecation notice, later an FoD toggle, eventually full removal. WMIC appears to be heading the same way.

Your Action Plan: 5 Steps to WMIC-Free Readiness

1. Scan Everywhere, Not Just Script Folders

Simply searching .ps1 or .bat files on a file server is insufficient. WMIC often hides in scheduled tasks, group policy logon/logoff scripts, RMM component libraries, configuration management tool wrappers, and vendor-supplied diagnostic packages. The following PowerShell sweep checks a wide net:

$Roots = @(
    'C:\Scripts',
    'C:\ProgramData',
    '\\FileServer\Automation',
    '\\FileServer\SoftwarePackages',
    '\\FileServer\RMM-Exports'
)
$Extensions = '*.bat', '*.cmd', '*.ps1', '*.vbs', '*.txt', '*.xml'

$Results = foreach ($Root in $Roots) {
    if (Test-Path $Root) {
        Get-ChildItem -Path $Root -Recurse -File -Include $Extensions -ErrorAction SilentlyContinue |
            Select-String -Pattern '\bwmic(\.exe)?\b' |
            Select-Object Path, LineNumber, Line
    }
}
$Results | Export-Csv '.\WMIC-Dependencies.csv' -NoTypeInformation

Scheduled tasks require a separate pass, because a task action can embed a command inline:

Get-ScheduledTask | ForEach-Object {
    $Task = $_
    foreach ($Action in $Task.Actions) {
        $CommandLine = "$($Action.Execute) $($Action.Arguments)"
        if ($CommandLine -match '\bwmic(\.exe)?\b') {
            @{
                TaskPath  = $Task.TaskPath
                TaskName  = $Task.TaskName
                Execute   = $Action.Execute
                Arguments = $Action.Arguments
            }
        }
    }
} | Export-Csv '.\WMIC-ScheduledTasks.csv' -NoTypeInformation

RMM platforms often generate scripts at runtime. Export component definitions, monitors, and remediation packages from the management console, then search those text dumps, not just the endpoints.

2. Translate Behavior, Not Just Syntax

A mechanical find-and-replace from wmic to Get-CimInstance often fails. WMIC scripts frequently parse fixed-width or /value output using for /f and findstr. PowerShell returns objects, so you must rewrite the consumer logic. A few common conversions:

  • wmic os get Caption,VersionGet-CimInstance -ClassName Win32_OperatingSystem | Select-Object Caption, Version
  • wmic logicaldisk get DeviceID,FreeSpace,SizeGet-CimInstance -ClassName Win32_LogicalDisk | Select-Object DeviceID, FreeSpace, Size
  • wmic process where "name='notepad.exe'" get ProcessId,CommandLineGet-CimInstance -ClassName Win32_Process -Filter "Name='notepad.exe'" | Select-Object ProcessId, CommandLine

Preserve the contract expected by downstream consumers. If another tool expects a CSV file, produce deliberate CSV:

Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object Caption, Version | Export-Csv '.\OperatingSystem.csv' -NoTypeInformation

For remote queries, switch to CIM sessions:

$Session = New-CimSession -ComputerName 'PC-01'
Get-CimInstance -ClassName Win32_OperatingSystem -CimSession $Session | Select-Object Caption, Version
Remove-CimSession $Session

Test remoting under the identical service account, network boundary, and privilege level used in production. An interactive success from your admin workstation doesn’t guarantee that an unattended RMM agent will authenticate or cross a firewall the same way.

3. Test Application Lifecycles on Clean 25H2

For each packaged application identified as a potential WMIC user, run these steps on a 25H2 machine without reinstalling WMIC:

  • Install from scratch.
  • Launch the app and exercise any hardware-inventory or licensing functions.
  • Run the repair operation.
  • Apply a product update or patch.
  • Uninstall.

Check installer logs and application event logs for command-line errors. If any step fails, engage the vendor. It’s not enough for the app to “run”; it must survive the lifecycle.

4. Audit Deployment Images and WinPE

Custom Windows Preinstallation Environment (WinPE) images, task sequences, and answer files often contain hardware-detection scripts that call WMIC. Scan your deployment shares and build folders just as thoroughly as production repositories. A failure during imaging is harder to spot in a pilot than a broken runtime script.

5. Make a Migration Register, Not a Reinstall Habit

Reinstalling WMIC everywhere “just in case” hides the problem. Instead, classify each dependency by risk. A cosmetic health check script can be migrated on a relaxed schedule. A licensing check that blocks software deployment demands an immediate fix. Create a simple tracking sheet that lists: device group, calling script or product, business owner, replacement target, test status, and a hard deadline for WMIC removal. Assign an owner to every line item—even for third-party apps. “Vendor dependency” is a category, not a resolution.

Temporarily reinstalling WMIC is defensible only when five conditions are true:

  • The exact dependent script or product is identified.
  • The business owner has accepted a written retirement date.
  • A tested migration plan exists.
  • The temporary installation can be tracked and removed centrally.
  • A failed WMIC call will not silently corrupt inventory, compliance, or recovery data.

If those conditions aren’t met, hold the affected device group on its current Windows 11 24H2 deployment ring until the dependency is resolved.

The Clock Is Ticking

Microsoft has not provided a specific date for WMIC’s complete removal. That uncertainty is not an invitation to delay. Every temporary reinstall must be treated as borrowed time. The 25H2 release is a hard prompt to finish what you should have started in 2021. By the time the final removal build ships, any remaining wmic.exe call will become an emergency outage. Now is the moment to scrub your environment, translate legacy automations, and push vendors for updates. A Windows update shouldn’t be the first time you learn that a critical script depends on a tool marked for deletion four years ago.