Command Reference

  1. Global options & flags
    1. Common output options
  2. Command summary
  3. Command argument and option matrix
  4. Detailed command pages
  5. wum status
  6. wum list
  7. wum search
  8. wum install
  9. wum uninstall
  10. wum hide
  11. wum history
  12. wum pause
  13. wum schedule
  14. wum settings
  15. wum reboot
  16. wum diagnose
  17. wum update / wum upgrade

← Docs index

Complete reference for every WUM command, sub-command, argument, and option. Synopsis applies whether you run the published wum.exe or dotnet run --project src/WUM.CLI -- <args>.

Global options & flags

Flag Effect Admin
--version Print the version string (e.g. 0.7.0.79) No
--info Show developer / build info (version, commit, build date, author, license, repo, runtime, OS) No
--help Show help for the root command or any sub-command No

--info is a global option intercepted in Program.Main before parsing, so wum --info works from anywhere in the command tree.

Common output options

Most read commands share these:

Option Effect
--json Emit machine-readable JSON instead of the colorized view. Ideal for scripting/piping
--no-color Disable ANSI colors (where supported — list)
--verbose, -v Step-by-step / full-detail debug output (status, list)
--refresh Request an explicit user-initiated Windows Update refresh before the current live query (status, list, diagnose)

Command summary

Command Purpose Admin
status Dashboard of update state No
list List available / installed / hidden updates No
search Full-text search across available updates No
install Download & install updates Yes
uninstall Remove an installed update Yes
hide Hide / unhide / list hidden updates Partial
history Show install history No
pause Pause / resume updates Yes
schedule Manage a weekly update schedule Yes
settings View / change WU settings Yes (set/reset)
reboot Schedule / cancel a restart Yes
diagnose Health check + optional component reset Yes (--fix)
update, upgrade Check latest releases and self-update from the latest MSI Yes (install), No (--check)

Command argument and option matrix

Command Arguments / subcommands Supported options
wum status none --json, --verbose/-v, --refresh
wum list none --security, --critical, --optional, --drivers, --definition, --hidden, --installed, --microsoft-update/--mu, --json, --no-color, --verbose/-v, --refresh
wum search <term> --category <name>, --json, --microsoft-update/--mu
wum install [<kb-articles>...] --security, --critical, --all, --definition, --dry-run, --force/-f, --no-reboot, --microsoft-update/--mu
wum uninstall <kb-article> --force/-f
wum hide add <update-id> none
wum hide remove <update-id> none
wum hide list none none
wum history none --count/-n <N>, --failed, --kb <KB>, --json
wum pause none --days <N>
wum pause resume none none
wum schedule none; same as show none
wum schedule show none none
wum schedule set none --day <DayOfWeek>, --time <HH:mm>, --auto-install, --auto-reboot, --all
wum schedule clear none none
wum settings none; same as show none
wum settings show none none
wum settings set <key> <value> none
wum settings reset none none
wum reboot none --delay <seconds>, --force/-f, --cancel
wum diagnose none --refresh, --json, --fix, --force/-f
wum update / wum upgrade none --check/-c, --force/-f, --yes/-y

Detailed command pages

Command page Detail covered
status Status verdicts, JSON shape, refresh behavior
list Filters, installed/hidden scans, Microsoft Update, output modes
search Search term matching, category filter, JSON usage
install Target selection, dry-run, confirmation, reboot behavior
uninstall KB normalization, force mode, wusa.exe behavior
hide Add/remove/list hidden updates and update IDs
history Count, failed-only, KB filter, JSON fields
pause Pause duration clamp, resume, registry writes
schedule Schedule defaults, day/time validation, auto-install flags
settings All setting keys, accepted values, reset behavior
reboot Delay, force, cancel, shutdown command behavior
diagnose Checks, JSON, exit bitmask, --fix reset steps
update / upgrade Latest release check, MSI download, self-update

wum status

Dashboard showing WU service state, reboot requirement, pause info, and available-update counts by category.

Synopsis

wum status [--json] [--verbose|-v] [--refresh]

Options

Option Default Description
--json off Output as JSON
--verbose, -v off Step-by-step debug trace (service check, reboot check, pause read, COM fetch, per-update list)
--refresh off Request an explicit user-initiated Windows Update refresh before querying current status

Examples

wum status                 # Colorized dashboard
wum status --json          # Machine-readable
wum status -v              # Debug trace of every step
wum status --refresh       # Request an OS refresh, then query current status

System verdict logic

Current action takes priority: restart-required, failed, installing, downloading, and pending-installation states are shown distinctly. Otherwise, zero updates means up to date; security updates take precedence over the generic available verdict.

JSON shape

{
  "reboot_required": false,
  "updates_available": 3,
  "available_updates": 1,
  "security_updates": 1,
  "feature_updates": 1,
  "downloading_updates": 0,
  "pending_installation": 1,
  "installing_updates": 0,
  "restart_required_updates": 0,
  "failed_updates": 0,
  "updates_paused": false,
  "paused_until": null,
  "wu_service": "Running",
  "checked_at": "2026-06-24T10:15:00"
}

wum list

List available updates (default), installed updates, or include hidden ones — with category filtering.

Synopsis

wum list [--security] [--critical] [--optional] [--drivers] [--definition]
         [--hidden] [--installed] [--microsoft-update|--mu]
         [--json] [--no-color] [--verbose|-v] [--refresh]

Options

Option Description
--security Security updates only
--critical Critical updates only
--optional Optional updates only
--drivers Driver updates only
--definition Definition / Defender updates only
--hidden Include hidden updates in the scan
--installed Show installed updates instead of available
--microsoft-update, --mu Also query the Microsoft Update service (drivers + other MS products)
--json Output as JSON (the filtered list of WindowsUpdate objects)
--no-color Disable ANSI colors
--verbose, -v Full detail per update (KB, category, severity, size, status, reboot, description, support URL)
--refresh Request an explicit user-initiated Windows Update refresh before querying current updates

Category flags are OR-combined: wum list --security --drivers shows both. With no filter, all updates are listed. Filtering is applied after the scan, in C#.

Examples

wum list                       # All available updates (table)
wum list --installed           # Installed updates instead
wum list --security            # Security only
wum list --drivers --mu        # Drivers, querying Microsoft Update too
wum list --hidden              # Include hidden updates
wum list -v                    # Full detail per update
wum list --json                # JSON for scripting
wum list --no-color            # Plain text for piping
wum list --refresh             # Request an OS refresh, then query current updates

The footer reports total download size and how many updates need a reboot.


Full-text search across available updates. Matches the term (case-insensitive) against title, KB article, and description. The search always includes hidden updates so nothing is missed.

Synopsis

wum search <term> [--category <name>] [--json] [--microsoft-update|--mu]

Argument

Argument Description
term KB number or keyword (required)

Options

Option Description
--category <name> Filter results by category: Security, Critical, Optional, Driver, FeatureUpdate, CumulativeUpdate, Definition, ServicePack (parsed case-insensitively)
--json Output results as JSON
--microsoft-update, --mu Also query Microsoft Update

Examples

wum search KB5034441                  # By KB number
wum search defender                   # By keyword
wum search cumulative --category Security
wum search driver --mu --json

wum install

Download and install updates with an install-plan preview, per-update progress bars, and a post-install summary. Download/install operations require Administrator; --dry-run is read-only and does not.

Synopsis

wum install [<kb-articles>...] [--security] [--critical] [--all] [--definition]
            [--dry-run] [--force|-f] [--no-reboot] [--microsoft-update|--mu]

Argument

Argument Description
kb-articles Zero or more KB numbers, e.g. KB5034441 KB5035853. A bare number is auto-prefixed with KB

Options

Option Description
--security Install security updates only
--critical Install critical updates only
--all Install all available updates
--definition Install definition / Defender updates
--dry-run Print the install plan and stop — no changes
--force, -f Skip the confirmation prompt
--no-reboot Do not prompt to reboot after install
--microsoft-update, --mu Also query Microsoft Update when scanning

Target resolution order (ResolveTargets)

  1. Explicit KBs given → install exactly those (warns on any not found).
  2. --all → every available update.
  3. --security + --critical → both categories.
  4. A single category flag → that category.
  5. No flags → security + critical only; if there are none, falls back to all available.

Examples

wum install KB5034441                  # Specific KB
wum install KB5034441 KB5035853        # Multiple KBs
wum install --security                 # Security only
wum install --all                      # Everything
wum install --all --force              # No confirmation
wum install --all --dry-run            # Preview only
wum install --all --no-reboot          # Don't prompt for restart
wum install --definition --mu          # Defender defs incl. Microsoft Update

Flow: scan → resolve targets → show plan → confirm (unless --force) → per-update download + install → full live refresh → state-aware summary → reboot prompt unless --no-reboot.

After installation, WUM re-queries Windows Update so installed, failed, pending-restart, superseded, and no-longer-applicable updates are not reported from an old result. No-longer-applicable and restart-required items are not counted as failures. Pending feature updates are committed once immediately before a WUM-scheduled reboot.


wum uninstall

Remove a previously installed update by KB number, via wusa.exe /uninstall. Requires Administrator.

Synopsis

wum uninstall <kb-article> [--force|-f]

Argument

Argument Description
kb-article KB number, e.g. KB5034441 (bare number auto-prefixed)

Options

Option Description
--force, -f Skip the confirmation prompt

Examples

wum uninstall KB5034441
wum uninstall 5034441 --force

Uninstall may trigger a system restart (handled by wusa.exe /quiet /norestart; Windows may still require a reboot to finalize).


wum hide

Hide, unhide, or list hidden updates. Hidden updates are suppressed from the default available list.

Sub-commands

wum hide add <update-id>        # Hide an update
wum hide remove <update-id>     # Unhide a hidden update
wum hide list                   # List all hidden updates
Sub-command Argument Admin Description
add update-id (Update ID or KB) Yes Sets IsHidden = true on the update via WUA
remove update-id Yes Sets IsHidden = false
list — No Scans with hidden included and shows only hidden ones

Examples

wum hide add 12345678-90ab-cdef-1234-567890abcdef
wum hide remove 12345678-90ab-cdef-1234-567890abcdef
wum hide list

Get an update’s ID from wum list --json (the Id field) or wum search <kb> --json.


wum history

Show Windows Update install history from the WUA history store.

Synopsis

wum history [--count|-n <N>] [--failed] [--kb <KB>] [--json]

Options

Option Default Description
--count, -n <N> 20 Number of records to fetch
--failed off Show failed entries only (Success == false)
--kb <KB> — Filter to entries whose KB contains the value (case-insensitive)
--json off Output as JSON

Examples

wum history                    # Last 20 records
wum history -n 50              # Last 50
wum history --failed           # Only failures
wum history --kb KB5034441     # One KB's history
wum history --json -n 100      # JSON, last 100

Each record carries: title, KB, installed date, success flag, result code, error message (hex), and operation type.


wum pause

Pause all Windows Updates for a number of days, or resume early. Writes the standard WU pause registry values. Requires Administrator.

Synopsis

wum pause [--days <N>]
wum pause resume

Options

Option Default Description
--days <N> 7 Days to pause. Clamped to 1–35

Sub-command

Sub-command Description
resume Resume updates immediately (deletes the pause registry values)

Examples

wum pause                      # Pause 7 days (default)
wum pause --days 14            # Pause 14 days
wum pause --days 99            # Clamped to 35
wum pause resume               # Resume now

See Configuration → Pause for the exact registry values written.


wum schedule

Manage a persisted weekly update schedule. Requires Administrator for set/clear.

Sub-commands

wum schedule                   # Show current schedule (default)
wum schedule show              # Same as above
wum schedule set [options]     # Configure
wum schedule clear             # Remove the schedule

set options

Option Default Description
--day <DayOfWeek> Sunday Day of week (Monday…Sunday, case-insensitive)
--time <HH:mm> 02:00 Time of day, 24-hour HH:mm
--auto-install off Auto-install when the schedule fires
--auto-reboot off Auto-reboot after install
--all off Install all updates (otherwise security only)

Examples

wum schedule                   # Show
wum schedule set               # Defaults: Sunday 02:00
wum schedule set --day Friday --time 03:00 --auto-install --auto-reboot --all
wum schedule clear             # Remove

Invalid --day or non-HH:mm --time is rejected with an error. The schedule view shows the computed Next Run time.


wum settings

View or change Windows Update settings stored in the registry. Requires Administrator for set/reset.

Sub-commands

wum settings                       # Display all (default)
wum settings show                  # Same as above
wum settings set <key> <value>     # Change one setting
wum settings reset                 # Reset all to defaults (confirms first)

set arguments

Argument Description
key Setting name (see table)
value New value

Available keys

Key Values Description
auto-download true/false Automatically download updates
auto-install true/false Automatically install updates
install-drivers true/false Include driver updates
install-optional true/false Include optional updates
notify-new true/false Notify on new updates
notify-complete true/false Notify on install complete
pause-metered true/false Pause on metered connections
defer-feature 0–365 Defer feature updates (days)
defer-quality 0–30 Defer quality updates (days)
active-hours start-end Active-hours range, e.g. 8-22

Booleans accept true, 1, yes, or on (anything else is false). An unknown key throws and the CLI prints the full valid-key list.

Examples

wum settings                              # Show everything
wum settings set auto-download true       # Enable auto-download
wum settings set active-hours 9-18        # Active hours 9–18
wum settings set defer-feature 30         # Defer features 30 days
wum settings reset                        # Back to defaults

wum reboot

Schedule or cancel a post-update restart. Requires Administrator.

Synopsis

wum reboot [--delay <seconds>] [--force|-f] [--cancel]

Options

Option Default Description
--delay <seconds> 30 Delay before restart
--force, -f off Reboot without confirmation (and even if no reboot is “required”)
--cancel off Cancel a scheduled restart (shutdown /a)

Examples

wum reboot                     # Prompt, 30s delay
wum reboot --delay 60          # 60s delay
wum reboot --force             # No confirmation
wum reboot --cancel            # Abort a scheduled reboot

Without --force, if no reboot is currently required the command reports that and exits. For a pending update restart, WUM calls WUA Commit(0) once for the current boot, then schedules shutdown /r. Commit failure aborts scheduling; --cancel never commits.


wum diagnose

Run a comprehensive Windows Update health check (~30–60s). Optionally reset WU components with --fix. Optionally emit JSON with a scriptable exit code.

Synopsis

wum diagnose [--refresh] [--json]
wum diagnose --fix [--force|-f]

Options

Option Description
--refresh Request an explicit user-initiated Windows Update refresh before counting current updates
--json Output structured diagnostics + an exit code, then stop
--fix Reset Windows Update components — destructive, admin only (see below)
--force, -f Skip the --fix confirmation prompt

Examples

wum diagnose                   # Full colorized report
wum diagnose --refresh         # Request an OS refresh before the live query
wum diagnose --json            # Structured output + exit code
echo $?                        # (PowerShell: $LASTEXITCODE) read the bitmask
wum diagnose --fix             # Reset WU components (confirms first)
wum diagnose --fix --force     # Reset without confirmation

--fix stops services, renames SoftwareDistribution + catroot2 to .bak, reregisters WU DLLs, resets WinSock/WinHTTP proxy, restarts services, and triggers re-detection. Pending downloads are discarded; a reboot is advised.

The exit code is a bitmask for scripting. See Diagnostics for the full check list, the bitmask values, the health score, and how Search Error HRESULTs are decoded.


wum update / wum upgrade

Check the latest GitHub release and install the newest WUM MSI. upgrade is an alias for update.

Synopsis

wum update [--check|-c] [--force|-f|--yes|-y]
wum upgrade [--check|-c] [--force|-f|--yes|-y]

Options

Option Description
--check, -c Check for a newer release without installing. Exits 2 when an update is available
--force, -f, --yes, -y Skip confirmation and install the downloaded MSI

Examples

wum update --check             # Check only
wum update                     # Prompt before installing
wum upgrade --force            # Install latest MSI without prompting

The command compares the current assembly version with https://github.com/isubroto/wum/releases/latest, downloads the first .msi asset from the newest release, and launches msiexec /i <msi> /qb /norestart. Installing requires an elevated terminal.

Next: Architecture →


Back to top

Released under the MIT License. © WUM contributors.