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 call AdminHelper.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.


Back to top

Released under the MIT License. © WUM contributors.