Setting up a newly formatted Windows PC or deploying software across new office workstations has traditionally been an exhausting, manual process. Users spend hours opening web browsers, searching for developer download portals, downloading dozens of independent .exe and .msi installer files, manually unchecking bundled bloatware checkboxes, and repeatedly clicking through installation wizards. Keeping those applications updated over time requires opening each app individually to check for updates. To bring the speed, automation, and scriptability of Linux package managers (like apt and pacman) or macOS Homebrew to Windows, Microsoft developed Winget (Windows Package Manager). Built natively into Windows 11, Winget lets you discover, install, update, and batch-configure software from an elevated command prompt.
How Winget Operates Under Windows Architecture
Winget acts as an official command-line package orchestration engine:
- Community and Microsoft Certified Repository: Winget connects to Microsoft’s curated open-source community repository as well as the Microsoft Store catalog, hosting thousands of popular applications—from Google Chrome, Discord, and VLC to VS Code, Git, and Docker Desktop.
- Silent and Automated Installations: By passing silent execution arguments, Winget downloads genuine installer binaries directly from publisher CDN servers and executes installations silently in the background with zero GUI prompt interruptions.
- Single-Command Global Updates: Winget scans all installed software across your PC, cross-references version numbers against repository manifests, and updates every outdated app on your computer simultaneously with a single terminal command.
- Declarative JSON Configuration Files: System administrators can create declarative configuration scripts that install dozens of pre-configured applications automatically when onboarding new developer PCs.
Step-by-Step: Verifying and Updating Winget on Windows 11
Winget is included out of the box in Windows 11 via the App Installer package:
- Right-click the Start menu button and select Terminal (or search for
PowerShelland run as Administrator). - Verify that Winget is installed and check its version:
winget --versionThe terminal outputs the installed version (e.g.,
v1.9.25180). - If the command is not recognized, open the Microsoft Store, search for App Installer, and update the package to enable the Winget CLI tool.
Searching and Installing Applications with Winget
Installing software using Winget eliminates web browsing entirely:
1. Searching for an Application
To verify the exact package identifier for an application:
winget search "Mozilla Firefox"
The terminal outputs matching results, detailing the package Name, unique Id (e.g., Mozilla.Firefox), latest version, and repository source.
2. Installing an Application by Exact ID
Always install using the unique package --id to prevent accidental installation of similarly named tools:
winget install --id Mozilla.Firefox
Winget verifies the installer hash, downloads the package directly from Mozilla’s official CDN, and installs the software silently.
3. Forcing Silent, Unattended Installation
To suppress all user account control (UAC) and setup wizard dialogues completely:
winget install --id VideoLAN.VLC --silent --accept-package-agreements --accept-source-agreements
Updating All Installed Applications with a Single Command
One of Winget’s most powerful capabilities is comprehensive system-wide patch management:
1. Checking for Available Software Updates
To scan your PC and list every installed program that has a newer version available:
winget upgrade
Winget prints a neat tabular report displaying the application name, installed version, and the latest available release version.
2. Upgrading All Applications Simultaneously
To upgrade every outdated application across your entire PC in one automated sequence:
winget upgrade --all --include-unknown
Winget loops through every outdated package sequentially, downloading updates and executing installers in the background.
Batch Installing Software via Export and Import Files
When provisioning a brand new computer, you can export your entire software stack from your old PC and install it onto the new machine automatically:
1. Export Installed Software Stack to a JSON File
winget export -o C:\Users\Username\Desktop\apps_backup.json
2. Import and Batch Install on the New PC
Transfer the JSON file to your new computer and run:
winget import -i .\apps_backup.json --accept-package-agreements --accept-source-agreements
Windows automatically downloads and installs every software tool on the list without manual intervention.
Winget vs Chocolatey vs Scoop Comparison
| Feature | Winget (Windows Package Manager) | Chocolatey | Scoop |
|---|---|---|---|
| Developer & Official Backing | Native Microsoft (Pre-installed in Win 11) | Independent commercial open-source | Open-source community |
| Installation Medium | Official publisher CDNs + Store | Community repository scripts | Portable app extractions |
| Need for Third-Party Installs | Zero (native to Windows 11) | Requires running bootstrap scripts | Requires PowerShell bootstrap |
| Microsoft Store Integration | Native (installs UWP & Store apps) | No | No |
| Admin Rights Requirement | Standard UAC elevation | Requires persistent Administrator shell | Runs primarily in user space |
Troubleshooting Common Winget Issues
If Winget encounters errors during installation or updates:
- Installer Hash Mismatch (Error 0x80190194): Occurs when a software vendor releases a new patch before the community manifest update is merged. Run
winget source updateto synchronize the latest repository manifests. - Application Currently Running: If an application (like Google Chrome or Slack) is actively running during an upgrade command, the installer may pause or fail. Close running apps before executing
winget upgrade --all. - Pinning Packages to Prevent Updates: If you must keep a specific legacy software version, use the pin command:
winget pin add --id Package.Name.
Frequently Asked Questions
Can Winget uninstall software?
Yes. Simply execute winget uninstall --id Package.Name. Winget triggers the official application uninstaller silently.
Is software installed via Winget safe from malware?
Yes. Every manifest submitted to the Windows Package Manager repository undergoes automated Microsoft SmartScreen, VirusTotal, and static code analysis pipelines before being approved and merged.
Can I use Winget in automated PowerShell scripts and batch files?
Yes. System administrators frequently integrate Winget commands into Task Scheduler, Microsoft Intune deployment scripts, and Ansible playbooks for automated workstation management.