wingetsilent-installsteamgamingtutorial
Steam

How to Install Steam Silently with winget on Windows

Install Steam silently with winget — single-line command for unattended deployments, with first-run automation, library setup, and uninstall flags.

· 4 min read · updated May 29, 2026

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.

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

Continue reading