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
- Microsoft Teams on winget.tech → — full package details
- How to install Slack silently → — alternative team chat
- Office bundle → — full M365 stack
- Fresh Windows 11 setup → — full workflow