Spotify is the background-music app for half of Windows users. Here's the silent install for fresh-machine setups, dev workstations, and shared family PCs.
TL;DR
winget install --id Spotify.Spotify -e --silent --accept-package-agreements --accept-source-agreements
Spotify installs per-user to %APPDATA%\Spotify. ~20 seconds. No admin required.
What gets installed
| Field | Value |
|---|---|
| Package ID | Spotify.Spotify |
| Publisher | Spotify AB |
| Installer type | EXE (Squirrel.Windows) |
| License | Proprietary |
| Latest version | 1.2.90.451 |
| Homepage | spotify.com/download |
| Default install path | %APPDATA%\Spotify |
The desktop client is a thin shell around Spotify's web stack — Chromium Embedded Framework plus their C++ playback engine. About 400 MB installed.
Per-user only
Spotify's installer doesn't support --scope machine. Each user gets their own install in their AppData. On shared machines, every user has to install it themselves (or you script the install per-user-profile during onboarding).
Suppress the auto-launch
Spotify's installer launches the app immediately after install. To prevent this in deployment scripts:
winget install --id Spotify.Spotify -e --override "/silent"
The Squirrel installer accepts the GNU-style --silent flag (also /silent for compatibility).
Disable auto-start on login
Spotify quietly adds itself to Windows startup. To remove:
Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run" -Name "Spotify" -ErrorAction SilentlyContinue
Or via Spotify UI: Settings → Startup and window behavior → "Open Spotify automatically after you log into the computer" off.
There's no winget-level flag for this — it's a Spotify in-app preference, applied on first launch.
Microsoft Store variant
Spotify is also on the Store. It's the sandboxed UWP wrapper:
winget install --id 9NCBCSZSJRSB -e --source msstore
The Store variant updates via Store, has stricter system access (no global hotkeys for media keys, e.g.). For most users the standard Spotify.Spotify is better.
Specify version
winget install --id Spotify.Spotify -e --version 1.2.85.450 --silent
List versions:
winget show --id Spotify.Spotify --versions
⚠️ Spotify self-updates aggressively — it'll auto-update past whatever winget installed within a day. To freeze, disable Spotify's updater:
$updateExe = "$env:APPDATA\Spotify\SpotifyMigrator.exe"
if (Test-Path $updateExe) { Rename-Item $updateExe "$updateExe.disabled" }
Re-enable by reversing the rename.
Pin to silence winget noise
Because Spotify self-updates faster than winget manifests refresh, winget upgrade --all often nags about Spotify forever. Silence it:
winget pin add --id Spotify.Spotify
Now winget leaves Spotify alone and Spotify's own updater handles it. See winget pin guide.
Block telemetry / disable Spotify Connect ads
For privacy-conscious deployments, drop a prefs file:
$prefsPath = "$env:APPDATA\Spotify\prefs"
@'
ui.show_friend_feed=false
app.player.autoplay-on-empty-context=false
ads.opted_out=true
'@ | Out-File -Encoding utf8 $prefsPath
These are Spotify's documented prefs flags. Full list in their support docs.
Verify
winget list --id Spotify.Spotify
Or launch:
& "$env:APPDATA\Spotify\Spotify.exe"
Upgrade silently
winget upgrade --id Spotify.Spotify -e --silent --accept-package-agreements --accept-source-agreements
Most of the time Spotify is already on the latest version (its built-in updater is fast). winget upgrade catches edge cases where the auto-updater was disabled or blocked.
Uninstall silently
winget uninstall --id Spotify.Spotify --silent --disable-interactivity
To also wipe cached music (frees several GB if you've used Spotify a while):
winget uninstall --id Spotify.Spotify --silent
Remove-Item "$env:APPDATA\Spotify" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item "$env:LOCALAPPDATA\Spotify" -Recurse -Force -ErrorAction SilentlyContinue
Your playlists, follows, and library all live on Spotify's servers — local wipe doesn't affect them.
In a media-focused setup
$apps = @(
"Spotify.Spotify",
"VideoLAN.VLC",
"OBSProject.OBSStudio",
"Audacity.Audacity"
)
foreach ($id in $apps) {
winget install --id $id -e --silent `
--accept-package-agreements --accept-source-agreements
}
# Remove Spotify from startup
Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run" -Name "Spotify" -ErrorAction SilentlyContinue
Common errors
"Spotify is already installed" — winget sees the existing per-user install. To overlay:
winget install --id Spotify.Spotify -e --silent --force
0x80073D02 — Spotify is in use — Spotify keeps a background process even after window close (system tray). Kill it:
Get-Process Spotify -ErrorAction SilentlyContinue | Stop-Process -Force
winget upgrade --id Spotify.Spotify
See package in use fix.
Spotify won't launch after install — Squirrel installer corrupted on disk. Wipe + reinstall:
Remove-Item "$env:APPDATA\Spotify" -Recurse -Force
Remove-Item "$env:LOCALAPPDATA\Spotify" -Recurse -Force
winget uninstall --id Spotify.Spotify
winget install --id Spotify.Spotify -e --silent
See also
- Spotify on winget.tech → — full package details
- How to install VLC silently → — companion media app
- Gaming bundle → — Spotify alongside Steam + Discord
- Fresh Windows 11 setup → — full workflow