Windows Update Manager CLI
Manage the entire Windows Update lifecycle from the terminal — list, search, install, uninstall, hide, pause, schedule, configure, reboot, and diagnose — without ever opening the Settings app.
Version: 0.7.0.79 · Target:
net10.0-windows(win-x64) · License: MIT
WUM is built on .NET 10 and drives the Windows Update Agent (WUA) COM API through PowerShell, giving administrators and power users full, scriptable control over Windows Updates.
Documentation map
| Document | What it covers |
|---|---|
| Installation | Build from source, publish a single-file wum.exe, MSI / WinGet install, requirements |
| CLI Mode | One-shot commands, arguments, options, diagnostics, and troubleshooting |
| Interactive Mode | Smart shell, slash command subpages, completion, history, keyboard shortcuts, and session tools |
| Architecture | Project layout, services, models, helpers, DI, live Windows Update state, logging |
| Configuration | Settings keys, schedule, pause, and the exact registry paths each one writes |
| Development | Building, testing, the publish pipeline, and how to add a new command |
What WUM can do
| Area | Capabilities |
|---|---|
| Interactive shell | Run wum with no arguments for slash commands, smart completion, history, help, clear, and keyboard shortcuts |
| Discovery | List available, installed, and hidden updates with category filtering and full-text search |
| Installation | Download & install by KB number, category, or all at once — with an install plan, progress bars, and a summary |
| Uninstall | Remove an installed update by KB number (wusa.exe) |
| Pause / Resume | Pause all updates for 1–35 days via the registry; resume early |
| Scheduling | Persist a weekly update schedule (day, time, auto-install, auto-reboot, install-all) |
| Settings | View and change WU settings — active hours, deferrals, auto-download, metered network |
| Hide / Unhide | Suppress unwanted updates from the available list |
| Reboot | Schedule or cancel a post-update restart with a configurable delay |
| Diagnostics | Multi-point health check with an exit-code bitmask for scripting, plus an optional component reset (--fix) |
| Output | Colorized tables, verbose detail, --json for scripting, --no-color for piping |
30-second tour
# Interactive shell
wum # Open smart prompt with slash commands and completion
# Read-only — no admin needed
wum status # Dashboard: service state, reboot, pause, update counts
wum list --security # Show security updates only
wum search defender # Find updates matching a keyword
wum diagnose # Health check (why aren't updates showing?)
# Modifying — require an elevated (Administrator) terminal
wum install --security # Install security updates
wum install KB5034441 # Install a specific KB
wum pause --days 14 # Pause updates for 14 days
wum reboot --delay 60 # Restart in 60 seconds
Privilege model
WUM launches as-invoker — no UAC prompt on start. Commands split into two groups:
Read-only (standard user):
status,list,search,history,hide list,--info,--version,--help
Modifying (Administrator):
install,uninstall,pause,schedule,settings set/reset,reboot,diagnose --fix. These callAdminHelper.RequireAdmin()and stop with guidance if not elevated.
See the Command Reference for the exact requirement per command.
How it works, in one diagram
Command (CLI) ──resolves──▶ IUpdateService (DI singleton)
│
▼
1. optionally request user-initiated refresh
2. query Settings-backed WindowsUpdateManager state
3. return active state or enrich via online WUA
4. merge exact identities and live status
5. parse JSON output ─▶ List<WindowsUpdate>
Registry-backed operations (pause, schedule, settings) bypass PowerShell and use direct HKLM access. See Architecture for the full picture.