wingetsilent-installmicrosoftteamstutorial
Microsoft Teams

How to Install Microsoft Teams Silently with winget on Windows

Install Microsoft Teams silently with winget — Work or Personal version, tenant pre-config, machine-wide MSI, and the classic-vs-new-Teams confusion clarified.

· 4 min read

Microsoft Teams is the most "should be simple, isn't" install on Windows in 2026. There are (or were) three versions, two licensing models, a confusing "work or school" sign-in flow, and a machine-wide deployment story that's still in flux. Here's what actually works.

TL;DR

winget install --id Microsoft.Teams -e --silent --accept-package-agreements --accept-source-agreements

This installs new Teams (sometimes called "Teams 2.x" or "MSIX Teams") per-user via the MSIX subsystem. ~30 seconds. No admin required.

If you have a personal Microsoft account (outlook.com, hotmail.com), this same client handles both work/school AND personal accounts now — they merged the codebases in late 2024.

What gets installed

Field Value
Package ID Microsoft.Teams
Publisher Microsoft Corporation
Installer type MSIX
License Proprietary
Default install path %LOCALAPPDATA%\Packages\MSTeams_8wekyb3d8bbwe

The MSIX installer registers Teams as a Windows app and isolates it. Auto-updates via Windows Update / Microsoft Store delivery channels — winget upgrade rarely has work to do.

New Teams vs Classic Teams

There used to be two clients. As of mid-2025, classic Teams is end-of-life:

Client Package ID Status
New Teams (default) Microsoft.Teams ✅ Active, recommended
Classic Teams Microsoft.Teams.Classic ❌ EOL, no security updates

Only install Classic if you have a legacy line-of-business app that ONLY works with the old Teams. For everyone else: stick with the new client.

Per-user vs machine-wide

The MSIX Microsoft.Teams installs per-user. This works for typical desktop usage where one person uses one machine.

For multi-user / terminal server / VDI scenarios, Microsoft provides a separate machine-wide MSI installer. winget doesn't ship it directly — use Microsoft's Teams Bootstrapper approach:

# Download from Microsoft's CDN
Invoke-WebRequest -Uri "https://go.microsoft.com/fwlink/?linkid=2243204" `
  -OutFile "$env:TEMP\teamsbootstrapper.exe"

# Provision Teams for all users on the machine
& "$env:TEMP\teamsbootstrapper.exe" -p -o "C:\Path\To\MSTeams-x64.msix"

This is the supported pattern for shared machines, VDI hosts, and Citrix farms.

Suppress sign-in prompts

Teams pops a sign-in window on first launch. You can't silently sign in (security requirement), but you can pre-populate the tenant URL for SSO-enabled deployments:

# Set default tenant for Teams sign-in (HKCU)
New-Item -Path "HKCU:\Software\Microsoft\Office\Teams" -Force | Out-Null
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Office\Teams" `
  -Name "HomeUserUpn" -Value "user@yourcompany.com" -Force

When the user opens Teams, it pre-fills the email and triggers SSO with your IdP (Azure AD / Entra). They click once to confirm.

Don't auto-start with Windows

New Teams adds itself to startup by default. To disable:

# Disable Teams auto-start via Settings (per-user)
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run" `
  -Name "com.squirrel.Teams.Teams" -Value '' -ErrorAction SilentlyContinue

# Or via the Teams MSIX manifest
Add-AppxPackage -DisableDevelopmentMode -Register `
  "$env:LOCALAPPDATA\Packages\MSTeams_8wekyb3d8bbwe\AppxManifest.xml"

In Teams' Settings UI: General → "Auto-start application" off.

Verify

winget list --id Microsoft.Teams

Or launch from the Start menu (the MSIX install registers a Start menu entry).

Upgrade silently

winget upgrade --id Microsoft.Teams -e --silent --accept-package-agreements --accept-source-agreements

In practice MSIX apps auto-update via Microsoft's delivery network. winget upgrade is mostly redundant for new Teams.

For Classic Teams (if you must use it):

winget upgrade --id Microsoft.Teams.Classic -e --silent

Uninstall silently

winget uninstall --id Microsoft.Teams --silent --disable-interactivity

To also wipe local cache and signed-in account state:

winget uninstall --id Microsoft.Teams --silent
Remove-Item "$env:LOCALAPPDATA\Packages\MSTeams_8wekyb3d8bbwe" -Recurse -Force -ErrorAction SilentlyContinue

Old Classic Teams leaves more residue — if migrating away:

winget uninstall --id Microsoft.Teams.Classic --silent
Remove-Item "$env:APPDATA\Microsoft\Teams" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item "$env:LOCALAPPDATA\Microsoft\Teams" -Recurse -Force -ErrorAction SilentlyContinue

In a corporate-deployment script

# Full Microsoft 365 collab stack
$apps = @(
  "Microsoft.Teams",
  "Microsoft.Edge",                # often pre-installed but ensures latest
  "Microsoft.OneDrive",
  "Microsoft.PowerToys",
  "Bitwarden.Bitwarden"
)

foreach ($id in $apps) {
  winget install --id $id -e --silent `
    --accept-package-agreements --accept-source-agreements
}

# Pre-set Teams tenant (replace with your domain)
New-Item -Path "HKCU:\Software\Microsoft\Office\Teams" -Force | Out-Null
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Office\Teams" `
  -Name "HomeUserUpn" -Value "user@yourcompany.com" -Force

Common errors

"Teams is already installed"

You may have Classic Teams lurking. Check:

winget list | Select-String Teams

If you see both, uninstall Classic and reinstall new:

winget uninstall --id Microsoft.Teams.Classic --silent
winget install  --id Microsoft.Teams -e --silent --force

"MSIX package not signed by Microsoft"

Corporate AppLocker policy blocking the MSIX. Have IT add Microsoft.Teams to the allowed publishers list.

"Teams won't sign in / SSO fails"

Common after machine join. Clear Teams account cache:

Get-Process | Where-Object { $_.Name -like "*Teams*" } | Stop-Process -Force
Remove-Item "$env:LOCALAPPDATA\Packages\MSTeams_8wekyb3d8bbwe\LocalCache" -Recurse -Force

Then sign in fresh.

0x80073D02 — Teams is in use

Teams stays running in the system tray. Close it from the tray icon → Quit, then retry:

Get-Process | Where-Object { $_.Name -like "*Teams*" -or $_.Name -like "*ms-teams*" } | Stop-Process -Force
winget upgrade --id Microsoft.Teams

See package in use fix.

Notifications not appearing

Teams notifications depend on Windows Focus Assist and Notification Permissions:

  • Settings → System → Notifications → enable for "Microsoft Teams"
  • Settings → Privacy & security → App permissions → Notifications → on

See also

Continue reading