upgrade command updates installed packages to their latest available versions. You can also use the update alias.
Syntax
Arguments
Search query to find packages to upgrade. If omitted, lists all available upgrades.
Package Selection Options
Filter by package identifier
Filter by package name
Filter by package moniker
Path to manifest file with upgrade version
Upgrade to specific version
Source to check for upgrades
Use exact string matching for queries
Upgrade all packages with available updates
Include packages with unknown versions in upgrade list
Include pinned packages in upgrade list (won’t upgrade unless —force)
Installation scope filter:
user or machineSelect installer architecture:
x86, x64, arm, arm64Select installer type
Locale to use (BCP-47 format)
Upgrade Behavior
Run installer in interactive mode
Run installer in silent mode
Purge previous version data when upgrading
Path to write installer log file
Installation directory (if supported)
Override installer arguments
Additional arguments to pass to installer
Force upgrade, bypassing pinned packages and hash validation
Ignore installer hash validation
Skip malware scan for local archives
Accept all license agreements
Accept all source agreements
Uninstall previous version before installing new version
Allow installer to request a reboot
Dependencies
Skip dependency installation
Authentication
Custom HTTP header for source requests
Authentication mode:
silent, silentPreferred, interactiveAccount to use for authentication
Examples
List all available upgrades:Exit Codes
0- Success0x8A150001- Package not found0x8A150002- No applicable upgrade0x8A150011- User cancelled0x8A15002C- Package is pinned
Without arguments,
winget upgrade lists all packages with available updates but doesn’t install them. Use --all to upgrade everything.Pinned packages are excluded from upgrades by default. Use
--force to upgrade pinned packages.