Productivity
Winget in Windows 11: Install and Update Apps by Command
Written by Windows 11 Field Guide Editorial Team · Updated

Winget in Windows 11 is the command line side of the Windows Package Manager: one short command can find an app, download its real installer from the publisher and install it, and another command can update everything at once. It is handy when you set up a new PC, when you want to keep a dozen tools current without opening each one, or when you simply prefer typing to clicking through download pages.
This guide covers the commands most people actually need, the security points worth knowing before you install anything, and what to do when Windows says winget is not recognized. It applies to Windows 11 version 24H2 and 25H2.
What winget is and where it comes from
Microsoft describes winget as a tool that lets you discover, install, upgrade, remove and configure applications. It is not a separate download on Windows 11: it ships with App Installer, a system component that the Microsoft Store keeps up to date. One detail trips people up on brand-new PCs: winget only becomes available after you have signed in to Windows for the first time, because the Store registers it in the background.
To check that it works, open Terminal (right-click Start, then Terminal) and type:
winget --version
If you see a version number, you are ready. Our guide to Windows Terminal explains tabs and profiles if you have not used it before.
The four commands you will use most
| Task | Command |
|---|---|
| Find an app | winget search vlc |
| See details before installing | winget show --id VideoLAN.VLC |
| Install it | winget install --id VideoLAN.VLC --exact |
| Remove it | winget uninstall --id VideoLAN.VLC |
Search results show a name, an Id and a source. Use the Id with --id and --exact when installing: a plain name can match several packages, and winget will ask you to narrow it down if the query is ambiguous. The VLC Id above is only an example of the format; always copy the Id from your own search results.
You can install several apps in one line by listing them, which makes a simple setup script for a new PC. To see everything winget knows is installed, including apps you installed the normal way, run winget list.
Update all your apps at once
This is the feature many people stay for.
- Run
winget upgradewith nothing after it. Winget lists the installed apps that have a newer version available. - Review the list.
- Run
winget upgrade --allto install all of those updates.
Two notes from Microsoft’s documentation. Some apps do not report a version, so winget cannot tell whether a newer one exists; they are skipped unless you add --include-unknown. And apps you have pinned with winget pin are skipped unless you add --include-pinned. Pinning is useful for an app you want to keep at a particular version.
Winget updates do not replace Windows Update or the Microsoft Store: Windows itself and drivers still come through Windows Update, and Store apps can also update from the Store’s Library page as described in our Microsoft Store guide.
Admin prompts and trust
How you open the terminal changes what you see:
- Normal window (recommended). When an installer needs administrator rights, Windows shows the usual permission prompt. If you decline, that app fails to install, but nothing else is affected.
- Administrator window. You will not see those prompts. Microsoft’s advice is to use caution in an admin window and only install applications you trust.
Packages come from the configured sources, mostly the community repository and the Microsoft Store. The community repository is reviewed, but packages are submitted by publishers and the community, so it is worth running winget show first and checking that the publisher and homepage are the ones you expect. Winget also checks each download against the hash in the package manifest; an option exists to ignore a failed hash check, and Microsoft marks it as not recommended. Leave it alone.
If you want to try an unfamiliar tool safely first, Windows Sandbox gives you a throwaway desktop on Pro editions.
Move your apps to a new PC
Winget can write a list of your installed apps to a file and reinstall them elsewhere.
- On the old PC run
winget export -o apps.json. - Copy apps.json to the new PC, for example on a USB stick.
- On the new PC run
winget import -i apps.json.
Only apps that winget can match to a package in its sources end up in the file, and settings and documents are not included. Pair this with the steps in our guide to transferring files to a new PC.
Useful options to remember
A handful of switches cover most everyday needs:
--silentruns the installer without its own windows, which is handy in a setup script. Not every installer honours it.- The two accept options, one for package agreements and one for source agreements (both listed in
winget install --help), answer the licence questions up front, so a long script does not stop and wait. --scope useror--scope machinechooses whether an app is installed just for you or for everyone, where the installer supports it.winget --help, or any command followed by--help, lists every option for that command.
Microsoft also publishes a PowerShell module for winget on the PowerShell Gallery, which suits people who would rather write scripts in PowerShell than in batch files. For occasional use the plain commands above are all you need.
Uninstalling and cleaning up
winget uninstall with an Id runs the app’s own uninstaller, the same one Settings would start. For apps you are not sure about, Settings > Apps > Installed apps is still the friendlier view; our guide to uninstalling apps in Windows 11 covers stubborn cases.
When winget is missing or fails
- “winget is not recognized”. Make sure you have signed in to the PC at least once, then open the Microsoft Store, go to Library and update App Installer. Close every terminal window and open a new one so it picks up the change.
- An install fails partway. Run
winget --logsto open the log folder; the newest file usually names the installer error. - Source errors. Microsoft’s troubleshooting page lists common error codes and fixes. Running
winget source updaterefreshes the package lists. - Company PCs. Winget can be restricted by Group Policy, in which case
winget --infolists the policies in force.
Quick reference
- Check it works:
winget --version - Find:
winget search <name> - Install:
winget install --id <Id> --exact - Update everything:
winget upgrade --all - Back up your app list:
winget export -o apps.json
More command line tools for everyday tasks are collected in the Windows 11 productivity hub.
Frequently asked questions
Is winget built into Windows 11?
Yes. Winget comes with App Installer, a system component delivered and updated through the Microsoft Store. It becomes available after you sign in to Windows for the first time.
How do I update all apps with winget?
Run winget upgrade to see which apps have updates, then winget upgrade --all to install them. Apps whose version Windows cannot detect are skipped unless you add --include-unknown, and pinned apps are skipped unless you add --include-pinned.
Why does winget say it is not recognized?
App Installer may not be registered yet, may be out of date, or the terminal was opened before it was installed. Update App Installer in the Microsoft Store, close and reopen the terminal, and try again.
Should I run winget as administrator?
Not by default. In a normal window, installers that need admin rights show a prompt you can approve. In an administrator window those prompts do not appear, so Microsoft advises using caution and installing only apps you trust.
Where do winget apps come from?
From the configured sources, mainly the community winget repository and the Microsoft Store. Packages in the community repository are submitted by publishers and community members, so check the publisher shown by winget show before installing.
Sources
Windows 11 Field Guide Editorial Team
Editorial team
The Windows 11 Field Guide team writes and updates independent Windows 11 guides and checks each step against Microsoft's documentation and the current Settings app.


