Teams desktop non si avvia su Windows 11 (build 22631) dopo lo switch a Teams 2: diagnosi, workaround e migrazione pulita

Su alcuni PC con Windows 11 Pro (build 22631) l’aggiornamento da Microsoft Teams Classic al nuovo Teams 2 manda in errore installazione e avvio. In questa guida operativa trovi diagnosi, workaround immediato e un percorso sicuro per migrare a Teams 2.

Indice

Scenario e sintomi

L’app desktop Teams Classic si installa, ma dopo gli update tenta il passaggio al nuovo client (Teams 2) e da quel momento l’avvio fallisce. Dai log di Squirrel emergono questi indizi:

  • DirectoryNotFoundException verso %AppData%\Microsoft\Teams\SquirrelTelemetry.log
  • Win32Exception: Anwendung nicht gefunden (in tedesco: “Applicazione non trovata”) quando prova a lanciare Teams 2
  • Nessuna voce di Teams in App installate, ma residui in C:\Program Files\WindowsApps
  • Più voci “teams” in Avvio automatico (Run/RunOnce, attività pianificate, ecc.)

Perché succede

Il vecchio client (Teams Classic) usa Squirrel, un bootstrapper/auto‑updater tipico delle app Electron, con installazione per‑utente in %LocalAppData% e log in %AppData%. Il nuovo Teams è invece un pacchetto MSIX gestito come AppX e installato (per utente o per macchina) con registrazioni sotto C:\Program Files\WindowsApps e integrazione profonda con Windows (protocol handler, registrazioni di pacchetto, App model).

Nello scenario descritto, il flusso di aggiornamento “Classic → Teams 2” fallisce in due punti:

  1. Telemetria Squirrel: il bootstrapper cerca/crea %AppData%\Microsoft\Teams\SquirrelTelemetry.log. Se la cartella (o i permessi) non esistono, scatta DirectoryNotFoundException e la fase di bootstrap si corrompe.
  2. Avvio Teams 2: anche se alcuni file MSIX sono stati copiati, il sistema non trova il punto d’ingresso del package. Il messaggio Anwendung nicht gefunden è coerente con una registrazione AppX incompleta, con un package orfano o bloccato da policy di distribuzione AppX.

Il risultato è una situazione “a metà”: niente voce pulita in App installate, residui in WindowsApps, più trigger di avvio, e client che non parte più.

Che cosa hai già provato (e perché non basta)

Tipo di azioneEsito / Note
Clean Boot + antivirus disattivatoNessun miglioramento: il problema è nel bootstrap/registrazione AppX, non nei servizi terzi.
Eliminazione cartelle %AppData% di TeamsInsufficiente: rimangono pacchetti MSIX e registrazioni di avvio altrove.
Criteri di gruppo App Package Deployment su Not ConfiguredNon risolve se servono impostazioni esplicite per consentire AppX trusted.
Installer eseguito come amministratoreFallisce comunque: la registrazione per‑utente può rompersi a prescindere dall’elevazione.
Nuovo profilo localeStesso errore: il problema può originare da componenti di sistema (AppX) e non solo dal profilo.
Installer “vecchio” Teamswindowsx64.exe 1.7.00.19353 dal CDN✔️ Funziona e consente di usare Classic, ma non permette lo switch a Teams 2.

Strategia di risoluzione: due percorsi possibili

Di seguito due vie pratiche, tra cui scegliere in base alle urgenze operative.

Percorso A — Business continuity rapida

Rimani su Teams Classic usando il workaround confermato, così da garantire continuità al team e guadagnare tempo per la bonifica completa.

Percorso B — Migrazione sicura a Teams 2

Esegui una pulizia mirata (cartelle, pacchetti AppX, autorun), prepara la cartella telemetria, installa il MSIX offline di Teams 2 o distribuisci con Office Deployment Tool (ODT), quindi verifica le policy di dominio su AppX.


Workaround immediato: reinstallare Teams Classic dal CDN

Questo workaround consente di tornare operativi in pochi minuti. Non corregge l’errore di fondo dello switch a Teams 2, ma è stabile per l’uso quotidiano.

  1. Recupera l’URL dal log di Teams/Squirrel e copia la cartella CDN, del tipo:
    https://statics.teams.cdn.office.net/production-windows-x64/1.7.00.19353/
  2. Scarica da quella cartella il file Teamswindowsx64.exe.
  3. Installa e avvia la versione Classic. Confermerai che lo switch al nuovo Teams continua a generare l’errore, ma intanto il client classico funziona.
  4. Blocca lo switch automatico in attesa della bonifica (vedi più sotto la sezione “Pulizia avvii automatici e trigger”).

Nota: conserva il pacchetto in un percorso condiviso interno per riutilizzi rapidi su altre postazioni colpite.

Percorso consigliato per adottare il nuovo Teams 2

Preparazione: crea la cartella telemetria

Evita DirectoryNotFoundException creando (o ripristinando i permessi di) %AppData%\Microsoft\Teams prima dell’installazione.

# Eseguire come utente interessato (non serve elevazione)
$teamsAppData = Join-Path $env:APPDATA 'Microsoft\Teams'
New-Item -ItemType Directory -Path $teamsAppData -Force | Out-Null

Facoltativo: verifica permessi espliciti dell'utente corrente

$me = "$env:USERDOMAIN$env:USERNAME"
icacls $teamsAppData 

Bonifica residui: pacchetti AppX, cartelle e avvii automatici

Elimina i frammenti delle installazioni precedenti (per utente e per macchina) con estrema attenzione. Evita modifiche dirette a WindowsApps; usa sempre gli strumenti supportati.

Rimuovi pacchetti e cartelle note

# 1) Chiudi eventuali processi Teams
Get-Process teams -ErrorAction SilentlyContinue | Stop-Process -Force

2) Disinstalla pacchetti AppX "Teams" per tutti gli utenti

Get-AppxPackage -AllUsers Teams | Remove-AppxPackage -AllUsers

3) Rimuovi cartelle locali residue (per-utente e per-macchina)

Remove-Item "$Env:LOCALAPPDATA\Microsoft\Teams" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item "$Env:PROGRAMDATA\Microsoft\Teams" -Recurse -Force -ErrorAction SilentlyContinue

4) Se è stato usato l’MSI machine-wide di Classic, rimuovi il programma d'installazione

$msiPath = "${env:ProgramFiles(x86)}\Teams Installer"
if (Test-Path $msiPath) { Remove-Item $msiPath -Recurse -Force } 

Pulisci trigger di avvio automatico

# Rimuovi voci Run/RunOnce che puntano a Teams/Squirrel
$runKeys = @(
  'HKCU:\Software\Microsoft\Windows\CurrentVersion\Run',
  'HKCU:\Software\Microsoft\Windows\CurrentVersion\RunOnce',
  'HKLM:\Software\Microsoft\Windows\CurrentVersion\Run',
  'HKLM:\Software\Microsoft\Windows\CurrentVersion\RunOnce'
)
foreach ($rk in $runKeys) {
  Get-ItemProperty $rk -ErrorAction SilentlyContinue |
    ForEach-Object {
      $_.PSObject.Properties |
      Where-Object { $_.Value -match 'teams|squirrel' } |
      ForEach-Object {
        Write-Host "Rimuovo $($_.Name) da $rk"
        Remove-ItemProperty -Path $rk -Name $_.Name -ErrorAction SilentlyContinue
      }
    }
}

Disabilita eventuali attività pianificate legate a Teams

Get-ScheduledTask | Where-Object {$*.TaskName -match 'teams|squirrel'} |
ForEach-Object { Disable-ScheduledTask -TaskName $*.TaskName -TaskPath $_.TaskPath -ErrorAction SilentlyContinue } 

Verifica che non restino registrazioni “orfane”

# Elenco Start Apps e pacchetti AppX residui
Get-StartApps | Where-Object { $_.Name -match 'Teams' } | Format-Table
Get-AppxPackage -AllUsers Teams | Select Name, PackageFullName, PackageUserInformation

Installa il nuovo Teams con metodo offline/enterprise

Per evitare il bootstrap fallace, usa un installer MSIX offline (es. dal Microsoft 365 admin center) oppure una distribuzione controllata con ODT/Intune/Configuration Manager.

Installazione MSIX per utente

# Eseguire come utente target (o con script di distribuzione per-utente)
$msix = 'C:\Distrib\MSTeams-x64.msix'   # Percorso del pacchetto aziendale
Add-AppxPackage -Path $msix -ForceUpdateFromAnyVersion

Installazione (provisioning) per nuovi profili

# Eseguire in elevated PowerShell su PC di riferimento/immagine
$msix = 'C:\Distrib\MSTeams-x64.msix'
Add-AppxProvisionedPackage -Online -PackagePath $msix -SkipLicense

Distribuzione con Office Deployment Tool (ODT)

Se gestisci i Microsoft 365 Apps, puoi includere l’installazione del nuovo Teams nel flusso di provisioning. Esempio di configurazione (semplificata, indicativa) per canale enterprise e lingua italiana:

<Configuration>
  <Add OfficeClientEdition="64" Channel="MonthlyEnterprise">
    <Product ID="O365ProPlusRetail">
      <Language ID="it-it"/>
    </Product>
    <Product ID="Teams">
      <Language ID="it-it"/>
    </Product>
  </Add>
  <Updates Enabled="TRUE"/>
  <Display Level="None" AcceptEULA="TRUE"/>
</Configuration>

Nota: allinea l’ID prodotto ai contratti/licenze in uso nella tua organizzazione e all’infrastruttura di gestione che adotti.

Controlla le policy di dominio su AppX

Le policy che più spesso impediscono la registrazione corretta dei pacchetti MSIX sono in Computer Configuration → Administrative Templates → Windows Components → App Package Deployment. Verifica in particolare:

  • Allow All Trusted Apps to InstallEnabled
  • Prevent non‑admin users from installing packaged Windows appsDisabled (o coerente col tuo modello di distribuzione)

In ambienti restrittivi, valuta anche “Allow deployment operations in special profiles” se usi profili temporanei o tecnologie di profile virtualization.

Verifica finale

  1. Accedi con l’utente destinatario.
  2. Apri il nuovo Teams dal menu Start.
  3. Controlla che non si ricreino voci di avvio Squirrel/Classic.
  4. Esegui un riavvio e test di persistenza.

Toolkit di diagnosi rapida

Usa questa “checklist” per fotografare lo stato del client prima e dopo la bonifica.

Raccogli i log “giusti”

  • %AppData%\Microsoft\Teams\SquirrelTelemetry.log
  • %LocalAppData%\SquirrelTemp\SquirrelSetup.log (se presente)
  • Event Viewer → Applications and Services LogsMicrosoftWindowsAppxDeployment-Server / AppxPackagingOM

Comandi utili

# Versione Windows
(Get-ComputerInfo).WindowsVersion, (Get-ComputerInfo).OsBuildNumber

Pacchetti Teams ancora registrati

Get-AppxPackage -AllUsers Teams | Format-Table Name, PackageFullName, Status

Voci di avvio legate a Teams

Get-CimInstance Win32StartupCommand | Where-Object { $.Command -match 'teams|squirrel' } |
Select-Object Name, Command, Location | Format-Table -AutoSize

Start menu entries

Get-StartApps | Where-Object { $_.Name -match 'Teams' } | Format-Table 

Piano decisionale: cosa fare in base al risultato

Esito verificaAzione consigliata
Nessun pacchetto AppX “Teams”, ma residui in %LocalAppData%Esegui la bonifica cartelle + pulizia avvii, poi installa MSIX offline.
Pacchetto AppX presente ma avvio fallisceRemove-AppxPackage -AllUsers e reinstallazione MSIX; controlla policy AppX.
Errore DirectoryNotFoundException nel logCrea/permessi su %AppData%\Microsoft\Teams prima dell’installazione.
Messaggio “Anwendung nicht gefunden”Registrazione AppX incoerente: rimuovi il package e reinstalla con offline installer.

Script “quasi‑one‑click” per la bonifica

Usalo in laboratorio o in assistenza remota. Logga le attività, bonifica, crea la cartella telemetria e (opzionale) installa Teams 2 da un MSIX locale.

# AVVISO: testare in ambiente pilota. Eseguire con privilegi adeguati.
$ErrorActionPreference = 'SilentlyContinue'
$log = "C:\Temp\TeamsFix-$(Get-Date -Format yyyyMMdd-HHmmss).log"
New-Item -ItemType Directory -Path (Split-Path $log) -Force | Out-Null

Function Write-Log($msg) {
$line = "[{0}] {1}" -f (Get-Date -Format s), $msg
$line | Tee-Object -FilePath $log -Append
}

Write-Log "Stop processi Teams"
Get-Process teams | Stop-Process -Force

Write-Log "Export stato iniziale"
Get-AppxPackage -AllUsers Teams | Select Name,PackageFullName,Status | Out-File -Append $log

Write-Log "Rimozione pacchetti AppX"
Get-AppxPackage -AllUsers Teams | Remove-AppxPackage -AllUsers

Write-Log "Pulizia cartelle locali"
$paths = @(
"$Env:LOCALAPPDATA\Microsoft\Teams",
"$Env:PROGRAMDATA\Microsoft\Teams",
"${env:ProgramFiles(x86)}\Teams Installer"
)
foreach($p in $paths){ if(Test-Path $p){ Remove-Item $p -Recurse -Force } }

Write-Log "Pulizia Run/RunOnce"
$runKeys = @(
'HKCU:\Software\Microsoft\Windows\CurrentVersion\Run',
'HKCU:\Software\Microsoft\Windows\CurrentVersion\RunOnce',
'HKLM:\Software\Microsoft\Windows\CurrentVersion\Run',
'HKLM:\Software\Microsoft\Windows\CurrentVersion\RunOnce'
)
foreach ($rk in $runKeys) {
if(Test-Path $rk){
Get-ItemProperty $rk |
ForEach-Object {
$*.PSObject.Properties |
Where-Object { $*.Value -match 'teams|squirrel' } |
ForEach-Object { Remove-ItemProperty -Path $rk -Name $_.Name }
}
}
}

Write-Log "Disabilito attività pianificate legate a Teams"
Get-ScheduledTask | Where-Object {$*.TaskName -match 'teams|squirrel'} |
ForEach-Object { Disable-ScheduledTask -TaskName $*.TaskName -TaskPath $_.TaskPath }

Write-Log "Creo cartella telemetria"
$teamsAppData = Join-Path $env:APPDATA 'Microsoft\Teams'
New-Item -ItemType Directory -Path $teamsAppData -Force | Out-Null

Write-Log "Stato finale pacchetti"
Get-AppxPackage -AllUsers Teams | Select Name,PackageFullName,Status | Out-File -Append $log

Facoltativo: installazione offline del nuovo Teams se il pacchetto è presente

$msix = 'C:\Distrib\MSTeams-x64.msix'
if (Test-Path $msix) {
Write-Log "Installo MSIX offline: $msix"
Add-AppxPackage -Path $msix -ForceUpdateFromAnyVersion
}

Write-Log "Completato. Vedi log: $log" 

Uso di Teams Web come “paracadute”

Se, nonostante la bonifica, il desktop client non parte, passa temporaneamente a Teams Web. Garantisce chat, canali, riunioni e condivisione file, mentre pianifichi una reinstallazione pulita del sistema o un’immagine standard con Teams 2 pre‑provisionato.

Best practice per prevenire ricadute

  • Standardizza il metodo d’installazione (MSIX offline con provisioning/gestione centralizzata) evitando il bootstrap “ibrido”.
  • Allinea le GPO AppX prima della migrazione, verificando che i client rispettino i criteri su trusted apps.
  • Usa gruppi pilota su una manciata di PC per intercettare anomalie prima del roll‑out di massa.
  • Monitora i log (AppxDeployment, Squirrel) con un raccoglitore centralizzato: è il modo più rapido per riconoscere pattern d’errore noti.
  • Evita eliminazioni manuali in WindowsApps: rimuovi sempre i package con Remove-AppxPackage o strumenti di gestione.

FAQ operative

Posso cancellare direttamente le cartelle in C:\Program Files\WindowsApps?

No. È una cartella protetta del sistema. La rimozione manuale può corrompere il deployment AppX. Usa sempre Remove-AppxPackage / Add-AppxPackage o strumenti MDM/MECM.

Serve eseguire tutto come amministratore?

La rimozione dei pacchetti per tutti gli utenti e alcune pulizie richiedono privilegi elevati; la creazione della cartella %AppData%\Microsoft\Teams e l’installazione per‑utente del MSIX possono essere eseguite come utente standard (se le policy lo consentono).

Qual è la differenza tra reinstallare “Classic” e installare “Teams 2”?

Classic è un’app gestita da Squirrel in %LocalAppData%. Teams 2 è un’app MSIX gestita dal sistema operativo (registrazioni AppX, integrazione Start, policy AppX). Sono modelli diversi: per questo il passaggio può fallire se il bootstrap è interrotto.

Ho ancora “Anwendung nicht gefunden”. E adesso?

Rimuovi ogni package “Teams”, riavvia, assicurati che le policy consentano l’installazione di app attendibili, poi installa il MSIX offline. Se persiste, valuta DISM /Online /Cleanup-Image /RestoreHealth e SFC /SCANNOW per riparare componenti di sistema, quindi riprova l’installazione.

Modello di piano di ripristino per il team IT

FaseObiettivoDeliverableTempo stimato
AssessmentIdentificare PC colpiti e pattern d’erroreElenco macchine, log centralizzati½ giornata
StabilizzazioneRipristinare operatività con ClassicInstaller CDN “Classic” distribuitoImmediato
BonificaRimuovere residui, pulire autorun, sistemare GPOScript di bonifica eseguiti e documentati1 giornata
MigrazioneInstallare Teams 2 in modalità controllataMSIX offline o ODT/MDM½‑1 giornata
MonitoraggioVerificare stabilità post‑migrazioneDashboard eventi AppX, report ticket1 settimana

Conclusioni

Il blocco nello switch a Teams 2 su Windows 11 build 22631 nasce da un bootstrap interrotto (cartella telemetria mancante) e/o da una registrazione AppX difettosa che produce l’errore “Applicazione non trovata”. Il workaround Classic assicura continuità subito, mentre la bonifica mirata (cartelle, pacchetti, autorun), la creazione preventiva di %AppData%\Microsoft\Teams e l’installazione MSIX offline consentono una migrazione pulita e stabile al nuovo client.

Se dopo tutti i passaggi il problema persiste su una percentuale rilevante di macchine, pianifica una reinstallazione pulita (immagine standard con Teams 2 provisionato) e mantieni Teams Web come paracadute operativo. Documenta comandi e log: saranno cruciali per prevenire ricadute in futuri aggiornamenti del client.


Riepilogo operativo

  • Workaround — Installa “Classic” dal CDN e sospendi lo switch.
  • Fix strutturale — Crea %AppData%\Microsoft\Teams, bonifica residui (AppX, cartelle, autorun), installa Teams 2 con MSIX offline.
  • Policy — Abilita l’installazione di app attendibili e non bloccare gli AppX per gli utenti target.
  • Contingency — Usa Teams Web finché la migrazione non è stabilizzata.

In sintesi
Il problema è legato a un malfunzionamento del bootstrapper di Teams 2 che non trova/crea la cartella di telemetria. L’installazione diretta della versione “Classic” ti permette di lavorare nell’attesa di una correzione o di una reinstallazione pulita del nuovo client (consigliata con MSIX offline e policy adeguate).

Indice