Se l’installazione di Office LTSC Standard 2021 con Office Deployment Tool si ferma con l’errore 0‑2048(0) “Could not find specified file path”, qui trovi cause, soluzioni pratiche e procedure di verifica per ripristinare un deployment affidabile e ripetibile.
Panoramica del problema
Da ottobre 2024 diverse organizzazioni hanno iniziato a riscontrare un arresto improvviso delle installazioni di Office LTSC Standard 2021 avviate con Office Deployment Tool (ODT). Il comando abituale setup /configure configuration.xml
o OfficeSetup.exe /configure configuration.xml
termina con l’errore 0‑2048(0) e il messaggio “Could not find specified file path”. Il fenomeno si presenta su più edizioni di Windows e su ambienti sia stand‑alone sia gestiti, dopo oltre due anni di funzionamento regolare.
Gli indizi raccolti indicano due macro‑cause:
- una regressione in una specifica build di ODT scaricabile dal Download Center;
- l’avvio non corretto del processo elevato (UAC) che perde il riferimento al file XML quando si usano script batch o percorsi relativi.
Segnali e sintomi
- Finestra ODT che si chiude rapidamente oppure dialog d’errore con codice 0‑2048(0).
- Assenza di avanzamento download o configurazione; nessuna cartella di Office creata accanto all’ESE/EXE.
- Log scarsi o assenti nella cartella Temp dell’utente o di sistema; talvolta un generico “file not found”.
- Lo stesso pacchetto funziona su alcune macchine ma non su altre, in particolare se lanciato da script che richiedono elevazione.
Cause e contesto
Di seguito gli elementi comuni più ricorrenti e le relative implicazioni.
Evidenza | Implicazione |
---|---|
Versione ODT 16.0.18129.20030 scaricata dal Download Center | Possibile regressione: numerosi riscontri di errore con questa build. |
Build 16.0.18129.20016 distribuita dal portale Microsoft 365 | Build differente: in molti casi non riproduce il problema. |
Avvio tramite file batch che attiva una seconda sessione CMD elevata (UAC) | La sessione elevata può perdere la current directory; i percorsi relativi al file XML non vengono risolti. |
Percorsi o nomi file localizzati (ad esempio configuracion.xml su sistemi spagnoli) | Se il nome del file nel comando non coincide esattamente con il file presente, ODT non lo trova. |
Soluzioni rapide e affidabili
Esecuzione manuale con privilegi elevati
È la correzione con il miglior tasso di successo, in particolare quando l’errore nasce da percorsi relativi persi durante l’elevazione UAC.
- Apri Prompt dei comandi come amministratore.
- Spostati nella cartella che contiene
OfficeSetup.exe
(osetup.exe
) e il file XML:cd /d "D:\Distrib\ODT\LTSC"
- Esegui il comando puntando al file nella stessa cartella:
OfficeSetup.exe /configure ".\configuration.xml"
Questo elimina l’effetto collaterale dei batch annidati e forza ODT a risolvere il file nella directory corretta.
Uso di una build alternativa di ODT
Se usi la build 16.0.18129.20030
e il problema persiste, prova la build 16.0.18129.20016
disponibile dal portale Microsoft 365 nell’area di installazione delle app per dispositivi. In alternativa, conserva nel tuo repository interno una build precedente nota per essere stabile.
Ricorso a versioni precedenti
Dove necessario, prova ODT precedenti (ad esempio 16.0.17830.20162
o 16.0.17328.20162
). In alcuni ambienti la 17830
ha generato l’errore 2052 0
; una versione più vecchia può risultare più stabile fino al rilascio del fix.
Verifica di lingua e nome del file XML
Assicurati che il comando faccia riferimento al nome esatto del file XML. In alcuni scenari il portale genera file localizzati, ad esempio configuracion.xml
. Evita spazi e caratteri accentati nel nome file.
Procedura diagnostica passo per passo
Controllo del contesto di esecuzione
- Verifica di essere nel percorso che contiene EXE e XML:
dir
. - Controlla che l’esecuzione sia elevata: nell’intestazione della finestra deve essere indicato Administrator. In PowerShell puoi verificare con
[Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()
.
Risoluzione dei percorsi
- Evita path relativi all’interno di script batch elevati. Preferisci un path assoluto:
OfficeSetup.exe /configure "D:\Distrib\ODT\LTSC\configuration.xml"
- Se usi PowerShell, usa
$PSScriptRoot
per riferimenti affidabili alla cartella dello script:& "$PSScriptRoot\OfficeSetup.exe" /configure "$PSScriptRoot\configuration.xml"
Analisi dei log
- Controlla la cartella Temp dell’utente e quella di sistema per eventuali file
OfficeSetup.log
o.txt
. - Verifica anche le cartelle dei log del servizio Click‑to‑Run in ProgramData o in Common Files\Microsoft Shared\ClickToRun per errori correlati alla fase di bootstrap.
Convalida della versione di ODT
Accertati della build che stai usando. In PowerShell:
(Get-Item ".\OfficeSetup.exe").VersionInfo.FileVersion
Get-FileHash ".\OfficeSetup.exe" -Algorithm SHA256
Configurazione XML di riferimento
Ecco un esempio di configuration.xml
essenziale per Office LTSC Standard 2021, adatto al canale perpetuo e con lingua italiana. Adatta OfficeClientEdition
, lingua ed eventuali esclusioni secondo necessità.
<Configuration>
<Add OfficeClientEdition="64" Channel="PerpetualVL2021" SourcePath=".">
<Product ID="Standard2021Volume">
<Language ID="it-it" />
<ExcludeApp ID="Access" />
<ExcludeApp ID="OneDrive" />
<ExcludeApp ID="Publisher" />
<ExcludeApp ID="SkypeForBusiness" />
</Product>
</Add>
<Display Level="None" AcceptEULA="TRUE" />
<Property Name="AUTOACTIVATE" Value="1" />
<RemoveMSI All="True" />
<Updates Enabled="True" />
</Configuration>
Suggerimenti:
- Mantieni
SourcePath
sulla stessa cartella dell’eseguibile per semplificare i riferimenti. - Per più lingue, aggiungi ulteriori
<Language ID="xx-yy" />
. - Per edizione a trentadue bit imposta
OfficeClientEdition="32"
.
Script PowerShell pronto all’uso
Questo script esegue ODT in modo affidabile, verificando i privilegi e usando percorsi assoluti. Inseriscilo nella stessa cartella di OfficeSetup.exe
e del file XML.
#requires -version 5.1
Esecuzione affidabile di ODT con gestione elevazione e percorsi
\$ErrorActionPreference = 'Stop'
\$here = Split-Path -Parent \$MyInvocation.MyCommand.Path
\$exe = Join-Path \$here 'OfficeSetup.exe'
\$xml = Join-Path \$here 'configuration.xml'
Verifica privilegi
\$identity = \[Security.Principal.WindowsIdentity]::GetCurrent()
\$principal = New-Object Security.Principal.WindowsPrincipal(\$identity)
\$elevated = \$principal.IsInRole(\[Security.Principal.WindowsBuiltInRole]::Administrator)
if (-not \$elevated) {
Write-Host 'Richiesta elevazione...'
Start-Process -FilePath 'powershell.exe' -ArgumentList "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs
exit
}
Verifiche di base
if (-not (Test-Path \$exe)) { throw "Eseguibile ODT non trovato: \$exe" }
if (-not (Test-Path \$xml)) { throw "File XML non trovato: \$xml" }
Facoltativo: stampa versione
try {
\$ver = (Get-Item \$exe).VersionInfo.FileVersion
Write-Host "Versione ODT: \$ver"
} catch {}
Esecuzione
\$proc = Start-Process -FilePath \$exe -ArgumentList "/configure `"$xml`"" -Wait -PassThru
if (\$proc.ExitCode -ne 0) {
throw "ODT ha terminato con codice \$(\$proc.ExitCode)"
} else {
Write-Host 'Configurazione completata con successo.'
}
Strategie di distribuzione alternative
- Supporto offline: usa l’ISO di Office LTSC recuperata dai tuoi portali di licenza per una installazione senza download live.
- Download e replica in LAN: esegui prima
/download
, poi/configure
puntando al percorso locale condiviso:OfficeSetup.exe /download ".\configuration.xml" OfficeSetup.exe /configure ".\configuration.xml"
- Automazione su larga scala: integra il comando
/configure
in uno script PowerShell elevato, evitando batch annidati e garantendo path assoluti. In Intune, ConfigMgr o strumenti simili, imposta la cartella contenente EXE e XML come directory di lavoro del programma.
Piani e azioni di mantenimento
- Invio di feedback: segnala il problema attraverso la funzione di feedback dell’editor di configurazione di Office per contribuire all’accelerazione del fix.
- Monitoraggio delle nuove build: il problema è stato riconosciuto come “a livello di applicazione”. Verifica periodicamente la disponibilità di una nuova versione di ODT.
- Archivio interno: conserva in un repository aziendale le build funzionanti, con hash e note di rilascio, per garantire rollback rapidi.
Buone pratiche per evitare ricadute
- Conserva EXE, XML e la cartella Office nello stesso percorso, oppure usa path assoluti.
- Allinea esattamente il nome del file usato nel comando con quello presente su disco; evita spazi o caratteri speciali nel nome.
- Esegui sempre un pilot su una macchina di test prima di una distribuzione ampia.
- Documenta versione di ODT, hash, data e note di compatibilità ogni volta che cambi build.
- Se possibile, firma internamente gli script di deployment per ridurre interferenze di sicurezza.
Tabella decisionale rapida
Sintomo | Possibile causa | Azione consigliata |
---|---|---|
Errore 0‑2048(0) immediato | Perdita di current directory dopo elevazione UAC | Esegui CMD elevato nella cartella corretta e usa OfficeSetup.exe /configure .\configuration.xml |
Stesso pacchetto funziona su alcune macchine | Differenze di percorso o permessi | Forza path assoluti; verifica ACL della cartella sorgente |
Errore apparso di recente | Regressione nella build di ODT | Prova build 16.0.18129.20016 o una versione precedente nota |
Messaggio “file not found” | Nome XML non corrispondente o localizzato | Rinomina il file o aggiorna il comando al nome effettivo (es. configuracion.xml ) |
Esempi pratici
Installazione con sorgente locale
cd /d "C:\Pacchetti\OfficeLTSC"
OfficeSetup.exe /download ".\configuration.xml"
OfficeSetup.exe /configure ".\configuration.xml"
Installazione con percorso di rete
\\filesrv\sw\OfficeLTSC\OfficeSetup.exe /configure "\\filesrv\sw\OfficeLTSC\configuration.xml"
Controllo veloce della versione
powershell -NoProfile -Command "(Get-Item '.\OfficeSetup.exe').VersionInfo.FileVersion"
Note su attivazione e licenza
- Office LTSC Standard usa attivazione tramite KMS o MAK. L’opzione
AUTOACTIVATE
può completare l’attivazione automaticamente se l’infrastruttura è già disponibile. - Verifica in anticipo che la chiave di volume o il canale di attivazione sia correttamente configurato nella tua rete.
Domande frequenti
Il problema riguarda solo LTSC Standard
No, la regressione in ODT può colpire più configurazioni; LTSC è stato tra i casi più segnalati per via della dipendenza dal canale perpetuo e dalla necessità di script ripetibili.
Posso continuare a usare il mio file XML
Sì. Il file XML raramente è la causa primaria; il problema nasce più spesso dal contesto di esecuzione o dalla specifica build di ODT. È comunque utile validare Product ID, Channel e lingue.
Quale Product ID usare per LTSC Standard
Per LTSC Standard il Product ID comunemente usato è Standard2021Volume
con Channel PerpetualVL2021
.
È obbligatorio disinstallare versioni MSI esistenti
Consigliato. L’elemento <RemoveMSI All="True" />
riduce conflitti durante l’installazione.
Checklist finale
- Apri CMD o PowerShell come amministratore e posizionati nella cartella del pacchetto.
- Usa un comando con percorso locale esplicito al file XML.
- Se l’errore persiste, cambia build di ODT alla
16.0.18129.20016
o a una precedente stabile. - Conferma nome e lingua del file XML generato dal portale.
- In scenari di massa, preferisci script PowerShell con path assoluti ed elevazione gestita.
- Monitora l’uscita di una nuova release che risolva la regressione.
Conclusioni
L’errore 0‑2048(0) durante l’uso di Office Deployment Tool è riconducibile quasi sempre a due fattori: una build di ODT con regressione e un contesto di esecuzione elevato che perde i riferimenti ai file. La soluzione più veloce consiste nel lanciare manualmente, da console amministrativa, OfficeSetup.exe /configure
dalla cartella che contiene EXE e XML, oppure nell’adottare una build di ODT precedente non affetta dal bug. Per prevenire ricadute, impiega percorsi assoluti, conserva nel tuo repository le versioni funzionanti e automatizza il deployment con script PowerShell ben strutturati. Nel frattempo, segnala il comportamento anomalo e verifica periodicamente nuove versioni: il fix definitivo è atteso in un aggiornamento futuro dell’applicazione.