WMIC can be added as an optional feature on current Windows 11 builds through Settings or PowerShell commands.
WMIC still runs on thousands of production scripts even though Microsoft deprecated it years ago. On Windows 11 24H2, enabling WMIC takes about two minutes through Settings or a single PowerShell command — but there are two gotchas that trip people up. The feature name requires four trailing tildes, and offline PCs need a WSUS server to pull it down.
This article covers both official installation routes, the exact syntax that works, the mistakes that waste time, and the PowerShell migration you should start planning even if you get WMIC running today.
What Happened To WMIC In Windows 11?
Microsoft placed WMIC on the deprecation list with Windows 10 version 21H1. Starting with Windows 11 build 22572, the tool was disabled by default but still installable as a Feature on Demand. With Windows 11 version 25H2, WMIC is fully removed — you cannot add it through any official channel on that build or later.
For anyone on Windows 11 24H2 or a build between 22572 and that cutoff, WMIC can still be enabled. The steps work on Home, Pro, and Enterprise editions and require administrator access. An active internet connection is needed unless you have a local WSUS server for offline installs.
Enabling WMIC On Windows 11: Two Methods That Work
Method 1 — Install WMIC Through Settings
This is the simplest route for single machines and anyone comfortable with the Settings app.
- Press Win + I to open Settings.
- Navigate to System > Optional features.
- Click View features (some versions show “Add an optional feature” then “View features”).
- Type WMIC into the search field.
- Check the box next to WMIC and click Next.
- Click Install and wait — the process takes up to ten minutes.
After the install completes, open Command Prompt and type wmic. You should see the wmic:root\cli> prompt appear.
Method 2 — Install WMIC Via PowerShell or DISM
Faster for IT pros and scripted deployments. Open Windows Terminal or PowerShell as Administrator, then run either command:
PowerShell:
Add-WindowsCapability -Online -Name WMIC~~~~
DISM:
DISM /Online /Add-Capability /CapabilityName:WMIC~~~~
The four trailing tildes (~~~~) are mandatory — WMIC alone will fail. After the install finishes, verify with:
Get-WindowsCapability -Online | Where-Object {$_.Name -like "*WMIC*"}
The State column should read Installed with a RestartNeeded value of False in most cases. If RestartNeeded shows True, reboot before using WMIC.
| Method | Requirements | Best For |
|---|---|---|
| Settings UI | Admin rights, internet connection | Single PC, non-technical users |
| PowerShell command | Admin rights, internet or WSUS | IT pros, multiple machines |
| DISM command | Admin rights, internet or WSUS | Scripted installs, automation scripts |
| Offline via WSUS | WSUS server, local network, admin rights | Air-gapped or enterprise environments |
| Manual copy from Windows 10 | Windows 10 source machine | Not recommended — version mismatches, breaks often |
How To Verify WMIC Is Working
After installation, confirm the tool is available and responsive. Open a command prompt and run:
wmic
If the wmic:root\cli> prompt appears, the installation succeeded. From there you can run any valid WMIC query, such as cpu get name or os get caption.
For a more thorough check, test that WMIC can return system data without errors:
wmic os get caption, version /format:list
This should display the Windows edition and build number. If the command returns “Invalid Verb” or “WMI is not installed,” the Feature on Demand did not install correctly — re-run the Steps setting or verify the WMIC~~~~ syntax in the PowerShell/DISM command.
Why You Should Plan Your PowerShell Migration Now
WMIC is gone on Windows 11 25H2 and will not return. The same management tasks still work through PowerShell’s CimCmdlets, and the syntax is straightforward to adapt. The most common replacement pattern swaps wmic for Get-CimInstance with the appropriate WMI class name.
Microsoft’s official guidance recommends migrating any script that calls wmic.exe to the corresponding PowerShell cmdlet. For most hardware and OS queries, Microsoft’s WMIC removal notice points directly to the CimCmdlets module as the replacement.
If you rely on WMIC in automated deployments or monitoring scripts, test the PowerShell equivalents now rather than waiting for an OS upgrade to break everything at once.
Common Installation Mistakes And The Fixes
Most failed installs come from one of three issues: the missing tildes, missing admin rights, or a build that no longer supports the optional feature. The table below covers each failure mode and the quick correction.
| Mistake | What Happens | Fix |
|---|---|---|
Forgetting the four trailing tildes (~~~~) |
The DISM or PowerShell command fails with “Capability not found” | Use WMIC~~~~ — exactly five characters after the “C” |
| Running PowerShell without admin rights | “Access denied” or “Requested operation requires elevation” | Right-click Terminal or PowerShell and select Run as administrator |
| No internet and no WSUS server | Download fails; install never completes | Connect to the internet or configure a local WSUS source with /Source |
| Attempting to install on Windows 11 25H2 or later | The optional feature does not appear in the list and commands return “Not found” | Migrate to PowerShell CimCmdlets — WMIC cannot be installed on these builds |
Copying wmic.exe manually from Windows 10 |
Version mismatch errors or missing dependencies at runtime | Remove the copied file and install the official Feature on Demand |
Typing WMIC instead of WMIC~~~~ in DISM |
The system cannot find the capability name | Double-check the spelling and add exactly four tildes |
| Skipping the verification step | Scripts still fail because the tool isn’t actually registered | Run Get-WindowsCapability -Online | Where-Object {$_.Name -like "*WMIC*"} to confirm state |
WMIC Command Mapping To PowerShell CimCmdlets
If you are already planning the switch, here are the most common WMIC queries and their PowerShell replacements. Using these equivalents keeps your scripts running when WMIC is no longer available.
| WMIC Command | PowerShell CimCmdlet Replacement |
|---|---|
wmic os get caption |
Get-CimInstance Win32_OperatingSystem | Select-Object Caption |
wmic cpu get name |
Get-CimInstance Win32_Processor | Select-Object Name |
wmic diskdrive get status |
Get-CimInstance Win32_DiskDrive | Select-Object Status |
wmic logicaldisk get size, freespace |
Get-CimInstance Win32_LogicalDisk | Select-Object DeviceID, Size, FreeSpace |
wmic bios get serialnumber |
Get-CimInstance Win32_BIOS | Select-Object SerialNumber |
wmic process list brief |
Get-CimInstance Win32_Process | Select-Object Name, ProcessId, WorkingSetSize |
wmic service where state='running' get name |
Get-CimInstance Win32_Service -Filter "State='Running'" | Select-Object Name |
Final Verification Checklist
Use this short sequence to confirm WMIC is fully operational and your scripts will run without surprises.
- Open a command prompt as administrator and type
wmic— the prompt should change to wmic:root\cli> - Run
wmic os get caption— the output should show the Windows edition you are running - Run the PowerShell verification command:
Get-WindowsCapability -Online | Where-Object {$_.Name -like "*WMIC*"}— the state must read Installed - If you plan to keep WMIC for legacy scripts, save a copy of the PowerShell migration table above and update your automation scripts incrementally
- For any machine running Windows 11 25H2 or newer, skip the WMIC install entirely and use the CimCmdlets equivalents in the table above
References & Sources
- Microsoft Support. “Windows Management Instrumentation Command-line (WMIC) removal from Windows.” Official Microsoft documentation covering the deprecation timeline and recommended alternatives.
