If you typed winget in PowerShell and got "winget is not recognized as an internal or external command", this guide gets you to a working install in under 5 minutes — even on a fresh Windows 10 box.
TL;DR
Easiest path (works for 95% of cases):
- Open Microsoft Store
- Search for "App Installer"
- Click Get (or Update if already installed)
- Close and reopen Terminal
- Run
winget --version
If you see something like v1.11.x, you're done.
Method 1 — Microsoft Store (recommended)
This is the official, supported way. Microsoft maintains App Installer in the Store and pushes updates automatically.
- Press Win + S and type "Microsoft Store"
- In the Store, search for App Installer — publisher should be "Microsoft Corporation"
- Click Get or Update
- Wait for the small download (~50 MB)
- Open a new Terminal / PowerShell window and run:
winget --version
Why a new window? Windows only refreshes PATH for processes opened after the install finishes. Existing terminals won't see winget until you reopen them.
Method 2 — Direct download from GitHub
Use this if the Microsoft Store doesn't work on your machine (LTSC, sandboxed accounts, restricted networks).
- Go to github.com/microsoft/winget-cli/releases
- Download Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle (the file with
.msixbundleextension) - Also download License1.xml (smaller file in the same release)
- Open PowerShell as Administrator
- Install with:
Add-AppxProvisionedPackage -Online `
-PackagePath "C:\path\to\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle" `
-LicensePath "C:\path\to\License1.xml" `
-Verbose
For per-user install (no admin needed):
Add-AppxPackage "C:\path\to\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"
You'll need to also install two dependencies if a clean machine:
# VC++ Desktop Bridge (runtime dependency)
Add-AppxPackage "https://aka.ms/Microsoft.VCLibs.x64.14.00.Desktop.appx"
# Xaml UI framework
Add-AppxPackage "https://github.com/microsoft/microsoft-ui-xaml/releases/download/v2.8.6/Microsoft.UI.Xaml.2.8.x64.appx"
Then verify:
winget --version
Method 3 — PowerShell one-liner
For unattended setup (CI, deployment scripts):
$ProgressPreference = 'SilentlyContinue'
$url = "https://github.com/microsoft/winget-cli/releases/latest/download/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"
Invoke-WebRequest -Uri $url -OutFile "$env:TEMP\winget.msixbundle"
Add-AppxPackage -Path "$env:TEMP\winget.msixbundle"
This downloads the latest release and installs it user-scoped. No admin needed for per-user install.
"winget is not recognized" — 5 fixes
Fix 1 — Re-open Terminal
Most common cause. Close every Terminal / PowerShell window, then open a new one. PATH is only refreshed for new processes.
Fix 2 — Check Windows version
[System.Environment]::OSVersion.Version
You need Major=10 + Build ≥ 17763. If older:
- Settings → Update & Security → Windows Update → Check for updates
- Install all pending feature updates
Fix 3 — Verify App Installer is installed
Get-AppxPackage Microsoft.DesktopAppInstaller
If empty, App Installer isn't there. Go to Method 1 or 2.
If you see it listed but winget still fails, the install may be corrupted — see Fix 5.
Fix 4 — Add winget to PATH manually
Find where it landed:
Get-ChildItem "C:\Program Files\WindowsApps" -Recurse -Filter "winget.exe" -ErrorAction SilentlyContinue | Select FullName
You'll see a path like:
C:\Program Files\WindowsApps\Microsoft.DesktopAppInstaller_1.11.x.x_x64__8wekyb3d8bbwe\winget.exe
Add the folder to your User PATH:
- Win + R →
sysdm.cpl→ Advanced → Environment Variables - Under User variables, edit Path → New → paste the folder
- OK out, reopen Terminal
Fix 5 — Reset App Installer
Get-AppxPackage Microsoft.DesktopAppInstaller | Reset-AppxPackage
Then reopen Terminal. If still broken, re-register:
Get-AppxPackage Microsoft.DesktopAppInstaller | ForEach { Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml" }
Verify it works
After install, test with a real command:
winget search firefox
You should see a table of Firefox-related packages. If yes — winget is fully functional.
Install your first app:
winget install --id Mozilla.Firefox -e
The -e flag means "exact ID match" — protects against installing the wrong app when names are similar.
Why won't Microsoft just include winget in Windows 10?
They did, partially — App Installer ships pre-installed on Windows 10 21H2 and later. The reason older Windows 10 doesn't have it is policy: only modernised Windows 10 images get App Installer, and LTSC / IoT skus opt out. If you're on a current Windows 10 (21H2+), winget should already work without these steps.
What's next?
- What is winget? → — primer on the package manager
- How to install Windows apps with winget → — first steps
- Winget commands cheatsheet → — every command in one page
- Set up a new Windows machine → — replay your app list anywhere
