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.
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:
- Telemetria Squirrel: il bootstrapper cerca/crea
%AppData%\Microsoft\Teams\SquirrelTelemetry.log
. Se la cartella (o i permessi) non esistono, scattaDirectoryNotFoundException
e la fase di bootstrap si corrompe. - 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 azione | Esito / Note |
---|---|
Clean Boot + antivirus disattivato | Nessun miglioramento: il problema è nel bootstrap/registrazione AppX, non nei servizi terzi. |
Eliminazione cartelle %AppData% di Teams | Insufficiente: rimangono pacchetti MSIX e registrazioni di avvio altrove. |
Criteri di gruppo App Package Deployment su Not Configured | Non risolve se servono impostazioni esplicite per consentire AppX trusted. |
Installer eseguito come amministratore | Fallisce comunque: la registrazione per‑utente può rompersi a prescindere dall’elevazione. |
Nuovo profilo locale | Stesso 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.
- 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/
- Scarica da quella cartella il file
Teamswindowsx64.exe
. - Installa e avvia la versione Classic. Confermerai che lo switch al nuovo Teams continua a generare l’errore, ma intanto il client classico funziona.
- 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 Install → Enabled
- Prevent non‑admin users from installing packaged Windows apps → Disabled (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
- Accedi con l’utente destinatario.
- Apri il nuovo Teams dal menu Start.
- Controlla che non si ricreino voci di avvio Squirrel/Classic.
- 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 Logs → Microsoft → Windows → AppxDeployment-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 verifica | Azione consigliata |
---|---|
Nessun pacchetto AppX “Teams”, ma residui in %LocalAppData% | Esegui la bonifica cartelle + pulizia avvii, poi installa MSIX offline. |
Pacchetto AppX presente ma avvio fallisce | Remove-AppxPackage -AllUsers e reinstallazione MSIX; controlla policy AppX. |
Errore DirectoryNotFoundException nel log | Crea/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 conRemove-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
Fase | Obiettivo | Deliverable | Tempo stimato |
---|---|---|---|
Assessment | Identificare PC colpiti e pattern d’errore | Elenco macchine, log centralizzati | ½ giornata |
Stabilizzazione | Ripristinare operatività con Classic | Installer CDN “Classic” distribuito | Immediato |
Bonifica | Rimuovere residui, pulire autorun, sistemare GPO | Script di bonifica eseguiti e documentati | 1 giornata |
Migrazione | Installare Teams 2 in modalità controllata | MSIX offline o ODT/MDM | ½‑1 giornata |
Monitoraggio | Verificare stabilità post‑migrazione | Dashboard eventi AppX, report ticket | 1 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).