Microsoft Just Killed WMIC — Here's the 5-Minute PowerShell Fix Before Your Scripts Break
Somewhere in your environment, there's probably a script that still calls wmic.exe. Maybe it's a login script nobody's touched since 2019. Maybe it's buried in an SCCM task sequence or a homegrown inventory tool some admin who left three jobs ago wrote and never documented.
You know it's there. Nobody's opened it in years, and it's quietly done its job every day without complaint. That streak is ending.
As of the August 2026 update wave, Microsoft has finished pulling WMIC out of Windows for good, and unlike previous rounds of "it's disabled, but you can turn it back on," this one doesn't come with an easy undo button.
If any of your automation still leans on WMIC, it's worth twenty minutes this week to check—because when this breaks, it usually breaks quietly, not with a helpful error message.
Here's what actually changed, why Microsoft finally pulled the trigger after a decade of warnings, and the fastest way to get your scripts onto PowerShell instead.
1. What Actually Happened to WMIC?
For anyone who's spent time in Windows administration, WMIC needs no introduction—it's been the easiest way to pull system information from the command line for over twenty years.
Need the OS build number, free disk space, a list of running processes, installed hotfixes, or the machine's BIOS serial? WMIC could get you there in one line, no script required.
That convenience is why it stuck around so long and also exactly why Microsoft has been trying to retire it.
As of the August 2026 preview updates, WMIC is gone from Windows 11 24H2 and 25H2, and from the upcoming 26H1 release too. The key difference from earlier stages of this rollout: it's no longer available as an optional feature on demand.
In past years you could switch it back on if you needed it. Now, for most systems, it's just gone.
Worth saying clearly, because it trips people up: this is the removal of the wmic.exe command-line tool specifically. WMI itself—the underlying management infrastructure that WMIC was just a front end for—hasn't gone anywhere and is still fully supported.
You've lost the doorway, not the room.
2. The Slow-Motion Death of WMIC: A Timeline
If you feel like you've heard "WMIC is going away" before, you have—this has been one of the longest deprecation runways Microsoft has ever run.
| Year | What Happened |
|---|---|
| 2016 | WMIC deprecated in Windows Server 2012. |
| 2021 | WMIC deprecated in Windows 10, version 21H2. |
| 2022 | Turned into an optional Feature on Demand in Windows 11 22H2—still preinstalled and on by default. |
| 2024 | Switched off by default in Windows 11 23H2 and 24H2. |
| 2025 | Removed on upgrade to Windows 11 25H2, though still reinstallable at that point. |
| 2026 | Fully removed via the August 2026 preview updates for 24H2, 25H2, and the new 26H1 build—no longer offered as a Feature on Demand. |
So if your scripts have kept working fine until now, it's not because nothing changed. It's because Microsoft spent years quietly preparing for this change. That cushioning is done.
3. Why Microsoft Killed It: The Security Angle
This work isn't housekeeping for its own sake. WMIC has a reputation problem, and it's earned it—security researchers have flagged it for years as one of the most abused "living-off-the-land" tools in Windows.
It's signed by Microsoft, it's trusted, and that's exactly why attackers love it: a legitimate system binary doesn't set off the same alarms a custom malware executable would.
Ransomware crews in particular have leaned on it hard, using WMIC to:
- Delete Volume Shadow Copies so victims can't just roll back.
- Check what antivirus or EDR software is running before deploying payloads.
- Quietly modify Windows Defender exclusions.
- Enumerate other machines on the network and spread sideways.
Pulling the binary doesn't shut the attack down completely—WMI is still reachable through PowerShell and COM—but it does close off the easiest, best-documented path in, and it forces a lot of SOC detection logic that was written around wmic.exe to get revisited.
4. What Breaks When WMIC Disappears
Realistically, the scripts at risk aren't the ones you actively maintain—it's the ones running quietly in the background that everyone has forgotten about:
- Old login and logon scripts pulling system details on startup.
- Scheduled tasks and SCCM/Intune task sequences.
- Aging monitoring or inventory tools that shell out to
wmic.exeunder the hood. - Incident response playbooks written years ago and never revisited.
- Homegrown patch-compliance or asset-tracking scripts.
- Security tooling and detection rules that specifically reference
wmic.exe.
None of these fail loudly. A report just comes back blank. A scheduled task exits with a code nobody's watching. An inventory dashboard goes stale and nobody notices for a month.
That's the actual risk here—not a dramatic outage, just data quietly going wrong in the background.
It's usually also where a broader gap shows up: teams managing Windows and Azure environments without solid day-to-day PowerShell habits are the ones most exposed when a legacy tool like this finally gets pulled.
If you're building stronger cloud administration skills, explore our Microsoft Azure training programs to strengthen your practical infrastructure and automation knowledge.
5. The 5-Minute Fix: How to Think About the Conversion
The good news is that you won't need to rewrite everything. Microsoft's recommended replacement—PowerShell's CIM cmdlets—maps onto WMIC almost line for line once you know the pattern.
A typical WMIC command asked for a WMI "alias," told it which properties to pull, and optionally added a condition to filter results.
PowerShell's Get-CimInstance cmdlet does the same three things, just with its own syntax: you point it at the underlying WMI class instead of the WMIC alias, pipe the result to Select-Object for the properties you want, and use the -Filter parameter in place of WMIC's "where" clause.
Get-CimInstance is what Microsoft wants you standardizing on going forward—it runs on both Windows PowerShell 5.1 and PowerShell 7+, and it handles remote queries the same way WMIC's /node: switch did, just with a -ComputerName parameter instead.
This kind of remote-query and automation-first thinking is valuable for anyone working toward a cloud administration career. You can also explore our Azure Architecture and cloud training programs for hands-on infrastructure skills.
6. Common WMIC Commands, Converted to PowerShell
Most of what people actually run day-to-day boils down to a handful of commands. Here's the direct swap for the ones you're most likely to have buried somewhere:
| Task | WMIC | PowerShell |
|---|---|---|
| OS version/build | wmic os get caption, version, buildnumber |
Get-CimInstance Win32_OperatingSystem | Select-Object Caption, Version, BuildNumber |
| CPU info | wmic cpu get name |
Get-CimInstance Win32_Processor | Select-Object Name |
| Disk space | wmic logicaldisk get caption, freespace, size |
Get-CimInstance Win32_LogicalDisk | Select-Object DeviceID, FreeSpace, Size |
| Running processes | wmic process list brief |
Get-Process or Get-CimInstance Win32_Process |
| Kill a process | wmic process where name="notepad.exe" delete |
Stop-Process -Name notepad |
| Installed hotfixes | wmic qfe list brief |
Get-HotFix |
| BIOS serial number | wmic bios get serialnumber |
Get-CimInstance Win32_BIOS | Select-Object SerialNumber |
| Manufacturer/model | wmic computersystem get model, manufacturer |
Get-CimInstance Win32_ComputerSystem | Select-Object Model, Manufacturer |
| Service status | wmic service where name='wuauserv' get state |
Get-Service -Name wuauserv | Select-Object Status |
| Network adapter info | wmic nic get name, macaddress |
Get-NetAdapter | Select-Object Name, MacAddress |
| Remote query | wmic /node:"PC01" os get caption |
Get-CimInstance -ComputerName PC01 -ClassName Win32_OperatingSystem |
One command worth flagging separately: if you've got wmic product get name, version anywhere for listing installed software, don't just swap it for Get-CimInstance Win32_Product.
It technically works, but querying Win32_Product triggers a consistency check on MSI packages on the machine. It's slow and can be disruptive.
Get-Package, or reading the uninstall registry keys directly, can accomplish the same task without those side effects.
7. The Mistake to Avoid: Don't Replace WMIC with Get-WmiObject
If you go looking for "how to replace WMIC" advice online, a lot of it points you toward Get-WmiObject, mostly because the syntax feels familiar and comfortable.
Resist that urge.
Get-WmiObject is legacy too—it only exists in Windows PowerShell 5.1, it's completely absent from PowerShell 7+, and it runs on the older DCOM protocol.
Migrate your scripts to it now, and in a few years you'll be writing this exact same blog post again, just about a different dead cmdlet.
Get-CimInstance is the one that's actually going somewhere. It's actively maintained, it works across both PowerShell editions, and it's the modern approach for CIM/WMI queries.
Do the migration once, and do it right.
8. Can You Still Get WMIC Back? (Temporary Workaround)
If you need breathing room, Microsoft does provide a manual reinstall package—wmic_dlc.zip—that drops the WMIC files back into C:\Windows\System32\wbem via an install. The PS1 script runs as administrator.
It's a legitimate option if one business-critical script needs a few more weeks before you can get to it.
Just don't treat it as a real fix. WMIC hasn't been available as an installable feature on demand since this latest round of updates, and that's the direction Microsoft has been signaling since 2022.
Reinstalling it manually buys you time, not a solution—the migration work is still sitting there waiting, and the runway to do it on your own terms is only getting shorter.
9. What IT Teams Should Do Right Now
-
Go find it before it finds you.
Search your login scripts, GPOs, SCCM/Intune task sequences, and monitoring configurations for
wmic.exereferences. Don't wait for something to fail first. - Start with what runs most often. Inventory checks, health scripts, and patch-compliance jobs tend to run constantly, so they're where a silent failure does the most damage the fastest.
-
Revisit your detection rules.
If your SOC or EDR flags
wmic.exeexecution as suspicious, that signal means something different once the binary is largely gone from your fleet—worth a second look. - Test before you push it everywhere. This is especially true for commands that involve remote queries or process termination, since those are particularly annoying to debug after the fact.
- Standardize on Get-CimInstance now. Don't use Get-WmiObject as an intermediate solution, or this could become a problem you're solving twice.
If your team's scripting habits are more "inherited from whoever was here before" than a formal foundation, this is usually the moment that exposes it—and it's worth closing properly rather than patching around it every time Microsoft retires another tool.
The same automation-first mindset carries over to Linux and cloud operations too. Explore our AWS DevOps Engineering and Linux Administration training programs to build practical skills across cloud and infrastructure environments.
10. Conclusion
Microsoft told everyone the change was coming—repeatedly, for the better part of a decade.
That doesn't make it less annoying to deal with, but it does mean there's no excuse for finding out about it from a broken script in production.
The scripts most at risk are exactly the ones nobody's looked at in years, which is precisely why the situation deserves a proactive hour rather than a reactive scramble.
The fix itself really is small—swap wmic for Get-CimInstance, test it, and move on with your week.
The more interesting thing underneath all these changes is how much Windows administration has already shifted toward PowerShell and scripting and how big the gap still is between admins who are fluent in it and those still running on fifteen-year-old habits.
If you're looking to strengthen your IT infrastructure, cloud, networking, or DevOps skills, visit our Innovative Academy training programs and explore the available courses.