Steam is essential on any gaming PC. Here's how to install Steam silently with winget — perfect for new-build setups, gaming PC provisioning, and unattended deployments. Note: silent install gets you the Steam bootstrapper; the full client downloads itself at first launch.
TL;DR
Open Terminal as Administrator:
winget install --id Valve.Steam -e --silent --accept-package-agreements --accept-source-agreements
Steam installs to C:\Program Files (x86)\Steam. ~10 seconds.
When you first launch Steam, it auto-updates the client (~100 MB) and then prompts for your account login. The login itself is interactive — there's no --username flag (Steam doesn't allow that for security reasons).
What gets installed
| Field | Value |
|---|---|
| Package ID | Valve.Steam |
| Publisher | Valve Corporation |
| Installer type | NSIS (Nullsoft) |
| License | Proprietary |
| Latest bootstrapper | 2.10.91.91 |
| Minimum Windows version | 10.0.0.0 |
| Homepage | store.steampowered.com |
| Default install path | C:\Program Files (x86)\Steam |
The installer:
- Adds Steam to Start Menu
- Registers
steam://URL handler - Installs Steamworks runtime
- Does NOT install games — that happens after login
Variations
Custom install path
Steam's NSIS installer accepts a /D= flag:
winget install --id Valve.Steam -e --override "/S /D=D:\Games\Steam"
/D= must be the LAST flag and unquoted. This is a common request — Steam libraries get large, and putting it on a dedicated SSD/HDD is smart.
Per-user install
Steam doesn't officially support per-user install. It needs admin to register protocols and drivers. Stick with --scope machine (default).
Pin to current version
The Steam bootstrapper rarely updates (the actual client self-updates internally). But if you want to freeze:
winget pin add --id Valve.Steam
See winget pin guide.
Post-install: pre-create library folder
If you want games installed to a non-default drive, create the library folder before first launch:
New-Item -ItemType Directory -Path "D:\SteamLibrary" -Force
Then in Steam: Settings → Storage → Add Drive.
Add Steam Big Picture / Steam Link
After Steam itself is installed:
winget install --id Valve.SteamLink -e --silent # Steam Link client
Pair with the bigger gaming setup:
winget install --id Discord.Discord -e --silent
winget install --id OBSProject.OBSStudio -e --silent
winget install --id Nvidia.GeForceExperience -e --silent
Full gaming setup: Top 15 winget packages for new gaming PCs.
Verify
& "C:\Program Files (x86)\Steam\Steam.exe" -version
Or just check:
winget list --id Valve.Steam
Upgrade silently
winget upgrade --id Valve.Steam -e --silent --accept-package-agreements --accept-source-agreements
In practice, Steam upgrades itself on every launch — the winget upgrade rarely has work to do.
Uninstall silently
winget uninstall --id Valve.Steam --silent --disable-interactivity
winget uninstall doesn't delete your games library — that stays on disk. To also wipe games and saves:
winget uninstall --id Valve.Steam --silent
Remove-Item "C:\Program Files (x86)\Steam" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item "$env:USERPROFILE\Documents\My Games" -Recurse -Force -ErrorAction SilentlyContinue
⚠️ The second Remove-Item deletes save files from non-Steam games too. Be careful.
Detailed: How to uninstall Windows apps with winget.
Fresh-gaming-PC script
# Install Steam + companions in one go
$apps = @(
"Valve.Steam",
"Discord.Discord",
"EpicGames.EpicGamesLauncher",
"OBSProject.OBSStudio",
"Nvidia.GeForceExperience",
"Microsoft.PowerToys",
"AntibodySoftware.WizTree"
)
foreach ($id in $apps) {
winget install --id $id -e --silent `
--accept-package-agreements --accept-source-agreements
}
Walk away. Come back to a fully-loaded gaming PC.
Common issues
Steam won't update on first launch
Common after upgrades. Run Steam as Administrator once, let it self-update, then it'll work as a normal user.
"Failed to update Steam"
Sometimes Steam's self-update fails on networks that block its CDN. Manually download from steampowered.com and let it replace the bootstrapper.
Steam shows as outdated in winget but won't upgrade
Steam's bootstrapper version differs from the running client version. Pin it to stop the noise:
winget pin add --id Valve.Steam
See winget upgrade not working fix.
"Installer hash does not match"
Valve's CDN sometimes serves slightly different bytes (geo-routing). Use --force:
winget install --id Valve.Steam -e --silent --force
See hash mismatch fix.
0x80073D02 — "Steam is currently in use"
Steam is running. Close it from the system tray, or:
Get-Process steam -ErrorAction SilentlyContinue | Stop-Process -Force
Stop-Service "Steam Client Service" -Force -ErrorAction SilentlyContinue
winget upgrade --id Valve.Steam
See 0x80073D02 fix.
See also
- Steam on winget.tech → — full package details
- Top 15 winget packages for gaming PCs → — full gaming stack
- Gaming bundle → — one-click install
- Fresh Windows 11 setup → — full workflow