In this article
Aliases
Usage
Arguments
Options
The upgrade command of the winget tool upgrades the specified application. Optionally, you may use the list command to identify the application you want to upgrade.
The upgrade command requires that you specify the exact string to upgrade. If there is any ambiguity, you will be prompted to further filter the upgrade command to an exact application.
Aliases
The following aliases are available for this command:
- update
Usage
winget upgrade [[-q] \<query> ...] [\<options>]
Arguments
The following arguments are available.
Argument | Description |
-q,--query | The query used to search for an app. |
Note
The query argument is positional. Wild-card style syntax is not supported. This is most often the string of characters you expect to help find the package you are upgrading.
Options
The options allow you to customize the upgrade experience to meet your needs.
Option | Description |
-m, --manifest | Must be followed by the path to the manifest (YAML) file. You can use the manifest to run the upgrade experience from a local YAML file. |
--id | Limits the upgrade to the ID of the application. |
--name | Limits the search to the name of the application. |
--moniker | Limits the search to the moniker listed for the application. |
-v, --version | Enables you to specify an exact version to upgrade. If not specified, the latest will upgrade the highest versioned application. |
-s, --source | Restricts the search to the source name provided. Must be followed by the source name. |
-e, --exact | Uses the exact string in the query, including checking for case sensitivity. It will not use the default behaviour of a substring. |
-i, --interactive | Runs the installer in interactive mode. The default experience shows installer progress. |
-h, --silent | Runs the installer in silent mode. This suppresses all UI. The default experience shows installer progress. |
--purge | Deletes all files and directories in the package directory (portable) |
-o, --log | Directs the logging to a log file. You must provide a path to a file that you have the write rights to. |
--custom | Arguments to be passed on to the installer in addition to the defaults. |
--override | A string that will be passed directly to the installer. |
-l, --location | Location to upgrade to (if supported). |
-scope | Select the installed package scope filter (user or machine). |
a, --architecture | Select the architecture to install. |
--installer-type | Select the installer type to upgrade. See supported installer types for WinGet client. |
--locale | Specifies which locale to use (BCP47 format). |
--ignore-security-hash | Ignore the installer hash check failure. Not recommended. |
--ignore-local-archive-malware-scan | Ignore the malware scan performed as part of installing an archive-type package from the local manifest. |
--accept-package-agreements | Used to accept the license agreement, and avoid the prompt. |
--accept-source-agreements | Used to accept the source license agreement, and avoid the prompt. |
--header | Optional Windows-Package-Manager REST source HTTP header. |
-r, --recurse, --all | Updates all available packages to the latest application. |
-u, --unknown, --include-unknown | Upgrade packages even if their current version cannot be determined. |
--pinned,--include-pinned | Upgrade packages even if they have a non-blocking pin. |
--uninstall-previous | Uninstall the previous version of the package during the upgrade. |
--force | Direct run the command and continue with non-security related issues. |
-?,--help | Shows help about the selected command. |
--wait | Prompts the user to press any key before exiting. |
--logs,--open-logs | Open the default logs location. |
--verbose, --verbose-logs | Used to override the logging setting and create a verbose log. |
--disable-interactivity | Disable interactive prompts. |
Example queries
The following example upgrades a specific version of an application.
CMDCopy
winget upgrade powertoys --version 0.15.2
The following example upgrades an application from its ID.
CMDCopy
winget upgrade --id Microsoft.PowerToys
The following example shows upgrading all apps
CMD Copy
winget upgrade --all
Using upgrade
To identify which apps are in need of an update, simply use upgrade without any arguments to show all available upgrades.
In the example below, you will see winget upgrade
shows the user which apps have an available update. From the available updates, the user identifies that an update is available for JanDeDobbeleer.OhMyPosh and uses an upgrade to update the application.
Using a list and upgrade
To search for an available update for a specific app, use to the list command. Once you have identified that an update is available for your specific app, use an upgrade to install the latest.
The example below shows the list command being used to identify that an update is available for Microsoft.WindowsTerminalPreview. The user then uses an upgrade to update the application.
upgrade --all
upgrade --all will identify all the applications with upgrades available. When you run winget upgrade --all
the Windows Package Manager will look for all applications that have updates available and attempt to install the updates.
Note
Some applications do not provide a version. They are always the latest. Because the Windows Package Manager cannot identify if there is a newer version of the app, an upgrade will not be possible.