KB5048654 non si installa in Windows Server 2022: errore 0x800f081f e repair install risolutivo

Se il Cumulative Update KB5048654 su Windows Server 2022 21H2 (build 20348) si blocca sempre con l’errore 0x800f081f – “The source files could not be found”, questa guida spiega come diagnosticare e risolvere il problema, fino al repair install che ha sbloccato l’LCU.

Indice

Panoramica del problema

In diversi ambienti, l’installazione della LCU KB5048654 si interrompe in modo sistematico intorno al 3‑4% per poi annullarsi con il codice 0x800f081f. I log DISM e CBS indicano che i source files necessari non sono disponibili: il motore di manutenzione prova a recuperarli da Windows Update (o dalla cache locale), non li trova e termina.

Il sintomo è ricorrente sia con Windows Update sia installando manualmente l’MSU/CAB con wusa.exe o DISM /Add‑Package. L’origine del problema è quasi sempre un component store (WinSxS) danneggiato o incoerente, che impedisce l’individuazione delle payload richieste dal pacchetto cumulativo.

Segnali e conferme nei log

Prima di intervenire, conviene raccogliere evidenze. Ecco i punti chiave da verificare:

  • DISM – in %windir%\Logs\DISM\dism.log compaiono voci sul fallimento di add-package e richiami a “source files could not be found”.
  • CBS – in %windir%\Logs\CBS\CBS.log si vedono errori 0x800f081f, rollback, o Store corruption, manifest missing.
  • Event Viewer – nel registro Setup e Servicing compaiono eventi di installazione non riuscita per il KB interessato.
  • Progresso bloccato – Windows Update si ferma al 3‑4% (talvolta 20‑21%) e poi annulla.
[Esempio sintetico da CBS.log]
Exec: Processing complete. Session: 30968536XXXX, Package: Packagefor_KB5048654~31bf3856ad364e35~amd64~~20348.XXXX
Error: 0x800f081f - The source files could not be found.
CBSESOURCE_MISSING

Tentativi di correzione che non hanno risolto

Questi metodi, pur consigliati come prime azioni, non hanno rimosso la causa in tutti i casi analizzati:

Metodo provatoDettagli operativiEsito
Reset componenti Windows UpdateArresto servizi BITS/WUAUSERV/CRYPTSvc/AppIDSvc, rinomina di SoftwareDistribution e catroot2, riavvio serviziNessun miglioramento
Controllo integrità component storeDISM /Online /Cleanup-Image /StartComponentCleanup e /RestoreHealth, seguito da sfc /scannowNessun miglioramento
Strumento di risoluzione problemi Windows UpdateRileva e “ripara” impostazioni, ma l’aggiornamento fallisce comunqueNessun miglioramento
Installazione manuale del pacchettoDownload dell’MSU dal Catalogo, estrazione CAB (expand -F:* …), DISM /add-packageStesso errore 0x800f081f
Nuovo reset servizi (variante)Sequenza di stop/start più completa (BITS, WUAUSERV, AppIDSvc, CryptSvc)Nessun miglioramento
In‑place upgrade tentato ma non riuscitoReinstallazione sul posto fallita in alcuni ambienti, talvolta per problemi di rete durante la copia pacchettiNon risolutivo

Cosa significa davvero l’errore 0x800f081f

0x800f081f indica che il motore di manutenzione non riesce a trovare i file sorgente necessari per completare l’operazione (payload mancanti). Non si tratta necessariamente di un problema di connettività a Internet o al Catalogo: spesso il component store (WinSxS) ha riferimenti corrotti o metadati incongruenti. In queste condizioni, anche puntare a un pacchetto locale (MSU/CAB) non basta, perché la risoluzione delle dipendenze interne fallisce.

Percorso consigliato alla risoluzione

Per massimizzare i tempi di ripristino e ridurre i rischi, ecco una sequenza pratica:

  1. Eseguire le correzioni rapide (reset servizi, DISM, SFC, installazione manuale) per escludere problemi transitori.
  2. Se persiste 0x800f081f, tentare un ripristino del component store da sorgente locale con /Source e /LimitAccess puntando a install.wim/.esd dell’ISO di Windows Server 2022.
  3. Se anche questo non cambia l’esito, procedere con la riparazione sul posto (repair install/in‑place upgrade) usando l’ISO di Windows Server 2022 corrispondente (stessa edizione/lingua o più recente compatibile).

Soluzione collaudata: repair install sul posto

Questa è la soluzione che ha sbloccato l’installazione dell’LCU KB5048654 nella pratica. La riparazione sul posto sovrascrive i componenti di sistema preservando ruoli, impostazioni e dati. Dopo l’operazione, Windows Update torna a installare le patch correttamente.

Preparazione

  • Backup/snapshot della VM o del server fisico.
  • ISO di Windows Server 2022 corrispondente per edizione e lingua (stesso ramo 21H2/build 20348 o più recente compatibile).
  • Spazio su disco adeguato (almeno 15–20 GB liberi su C: è una soglia prudenziale per evitare rollback).
  • Finestra di manutenzione per uno o più riavvii.

Procedura con interfaccia grafica (Desktop Experience)

  1. Montare l’ISO e avviare setup.exe.
  2. Quando richiesto, scegliere “Conserva file e applicazioni”.
  3. Lasciare che l’installazione ripari i componenti e completi i riavvii.
  4. Al termine, eseguire Windows Update e installare nuovamente la KB5048654 (o la LCU più recente disponibile).

Procedura da riga di comando

In ambienti Server Core o quando si preferisce l’automazione, è possibile eseguire il setup da riga di comando:

D:\setup.exe /auto upgrade /dynamicupdate disable

In caso di blocchi dovuti a controlli di compatibilità o driver, è possibile aggiungere parametri di compatibilità. Valutare questi switch solo in ambienti testati, perché possono ignorare avvisi importanti. In alternativa, avviare il setup senza switch e seguire i prompt interattivi.

Risultato atteso

Completato il repair install, la struttura del component store risulta ripristinata: Windows Update torna a funzionare e l’installazione della KB5048654 si conclude correttamente. I ruoli e le feature restano intatti (ad esempio AD DS, DNS, File Server), così come le applicazioni e i dati.

Alternativa prima del repair: puntare a una sorgente locale

Se si desidera un tentativo meno invasivo rispetto al repair, si può ricostruire il component store puntando a una sorgente locale (install.wim o .esd) dalla ISO di Windows Server 2022.

Individuare l’indice corretto nell’immagine

DISM /Get-WimInfo /WimFile:D:\sources\install.wim

Annotare l’Index che corrisponde all’edizione installata (Datacenter/Standard, Core/Desktop Experience). Quindi:

DISM /Online /Cleanup-Image /RestoreHealth /Source:wim:D:\sources\install.wim:<INDEX> /LimitAccess

Se si dispone di install.esd:

DISM /Online /Cleanup-Image /RestoreHealth /Source:esd:D:\sources\install.esd:<INDEX> /LimitAccess

Al termine, riavviare ed eseguire di nuovo Windows Update. Se l’errore persiste, passare al repair install.

Verifica del Servicing Stack Update

Prima di riprovare l’LCU, verificare la presenza dell’ultimo Servicing Stack Update (SSU) per il ramo in uso. È possibile elencare i pacchetti del servicing stack con:

DISM /Online /Get-Packages | findstr /i "servicing stack"

In molti rami recenti l’SSU è già integrato nella LCU; se non lo è, installarlo separatamente prima di ripetere l’aggiornamento cumulativo.

Checklist operativa

Per ridurre i tempi, applicare questa checklist dalla meno alla più invasiva:

  1. Reset Windows Update e cache:
net stop bits
net stop wuauserv
net stop appidsvc
net stop cryptsvc
ren %systemroot%\SoftwareDistribution SoftwareDistribution.bak
ren %systemroot%\System32\catroot2 catroot2.bak
net start cryptsvc
net start appidsvc
net start bits
net start wuauserv
  1. Manutenzione componente e controllo file di sistema:
DISM /Online /Cleanup-Image /StartComponentCleanup
DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow
  1. Tentativo con sorgente locale (vedi sezione dedicata).
  2. Installazione manuale dell’MSU/CAB per escludere glitch di Windows Update.
  3. Repair install con ISO di Windows Server 2022.

Come interpretare i log durante la diagnosi

Comprendere cosa dicono i log aiuta a evitare tentativi alla cieca:

  • CBS.log – cerca stringhe come 0x800f081f, Failed to resolve package, manifest missing. Errori ripetitivi indicano integrità del component store compromessa.
  • DISM.log – attenzione a Source files could not be found e ai fallback di origine. Se DISM prova a contattare WU nonostante una sorgente locale, aggiungi /LimitAccess.
  • Event Viewer > Applications and Services Logs > Microsoft > Windows > Servicing – utile per timeline e codici di rollback.

Considerazioni aggiuntive e buone pratiche

AspettoSuggerimento pratico
Causa probabileComponent store WinSxS danneggiato o incoerente; i file sorgente non sono reperibili né via Windows Update né da CAB locale senza ripristino del repository.
Tentativo alternativo prima del repairMontare l’ISO e usare DISM /RestoreHealth /Source:wim|esd:... con l’indice corretto; aggiungere /LimitAccess per forzare l’uso della sorgente locale.
Verifica SSUAssicurarsi che l’ultimo SSU coerente con il ramo sia presente prima di riprovare la LCU.
Ambienti virtualiIl repair in‑place funziona anche su VM (Hyper‑V, VMware, ecc.). Prima dell’operazione creare snapshot/backup e verificare lo spazio su disco.
Post‑repairEseguire Windows Update, applicare tutte le patch pendenti, quindi rimuovere snapshot non più necessari e pianificare un cleanup del component store.

Domande frequenti

Il repair install rimuove ruoli o dati?

No: la procedura con “Conserva file e applicazioni” mantiene ruoli, feature, impostazioni e dati. È comunque obbligatorio un backup/snapshot prima di iniziare.

Posso fare il repair senza connettività Internet?

Sì: montando l’ISO e disattivando gli aggiornamenti dinamici durante il setup, la riparazione procede usando esclusivamente la sorgente locale.

Come capisco qual è l’indice corretto in install.wim?

Con DISM /Get-WimInfo /WimFile:D:\sources\install.wim e scegliendo l’Index corrispondente all’edizione installata (Datacenter/Standard, Core/Desktop Experience).

Ha senso svuotare SoftwareDistribution e catroot2 più volte?

È utile solo per problemi transitori di download/installazione. Se il component store è corrotto, la misura non basta e occorre il ripristino da sorgente o il repair install.

Quali rischi comporta DISM /ResetBase?

Riduce lo spazio occupato dai componenti, ma rende impossibile disinstallare alcuni aggiornamenti preesistenti. È consigliabile non usarlo durante la fase di troubleshooting.

Posso indicare un percorso di sorgente alternativo via Criteri di gruppo?

Sì: tramite il criterio “Specifica le impostazioni per l’installazione di componenti facoltativi e la riparazione dei componenti”, impostando un percorso di origine affidabile (share con \sources\sxs o immagine montata). È utile soprattutto in ambienti isolati.

Script pronti all’uso

Reset avanzato dei servizi Windows Update

@echo off
setlocal
for %%S in (bits wuauserv appidsvc cryptsvc) do (
  sc query %%S >nul 2>&1 & if not errorlevel 1 net stop %%S
)
takeown /f %windir%\SoftwareDistribution /r /d y
icacls %windir%\SoftwareDistribution /grant administrators:F /t
ren %windir%\SoftwareDistribution SoftwareDistribution.bak
ren %windir%\System32\catroot2 catroot2.bak
for %%S in (cryptsvc appidsvc bits wuauserv) do (
  sc query %%S >nul 2>&1 & if not errorlevel 1 net start %%S
)
echo Done.
endlocal

Raccolta rapida dei log

md C:\Temp\KB5048654-logs
copy %windir%\Logs\CBS\CBS.log C:\Temp\KB5048654-logs\
copy %windir%\Logs\DISM\dism.log C:\Temp\KB5048654-logs\
wevtutil epl Microsoft-Windows-Servicing/Operational C:\Temp\KB5048654-logs\Servicing.evtx

Verifiche post‑ripristino

  • Windows Update – eseguire una ricerca aggiornamenti e applicare nuovamente la LCU. Verificare l’assenza di errori nei log.
  • Integrità del sistema – ripetere DISM /RestoreHealth e sfc /scannow; entrambi dovrebbero completarsi senza violazioni.
  • Ruoli e workload – validare i servizi critici (AD DS, DNS, Hyper‑V, File/Print, applicazioni line-of-business).
  • Cleanup e spazio – facoltativamente: DISM /Online /Cleanup-Image /StartComponentCleanup e Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore per stimare l’ottimizzazione.

Prevenzione per i prossimi cicli di patching

  • Sorgenti locali affidabili – mantenere una share interna con le immagini ufficiali allineate alla build in produzione per eventuali ripristini DISM.
  • Monitoraggio spazio e salute WinSxS – integrare nei check di manutenzione l’analisi periodica del component store.
  • Ordine di installazione – assicurarsi che l’SSU (se separato) preceda l’LCU; in molti rami è incluso, ma in ambienti isolati può essere necessario distribuirlo esplicitamente.
  • Snapshot intelligenti – prima del Patch Tuesday creare snapshot sulle VM critiche da eliminare una volta stabilizzata la postura di patching.

Sintesi operativa

  1. Se KB5048654 fallisce con 0x800f081f, il problema è con alta probabilità nel component store.
  2. Prova reset WU, DISM, SFC e installazione manuale. Se non basta, usa DISM con sorgente locale (install.wim/.esd).
  3. Se l’errore persiste, passa al repair install sul posto: conserva ruoli e dati e, in scenari reali, ha riportato l’LCU a installarsi regolarmente.

Appendice: comandi utili riassunti

:: Elenco pacchetti e stato
DISM /Online /Get-Packages /Format:Table

:: Verifica SSU
DISM /Online /Get-Packages | findstr /i "servicing stack"

:: Pulizia componenti
DISM /Online /Cleanup-Image /StartComponentCleanup

:: Ripristino salute (online)
DISM /Online /Cleanup-Image /RestoreHealth

:: Ripristino da sorgente locale (WIM)
DISM /Get-WimInfo /WimFile:D:\sources\install.wim
DISM /Online /Cleanup-Image /RestoreHealth /Source:wim:D:\sources\install.wim: /LimitAccess

:: Controllo file di sistema
sfc /scannow

:: Installazione manuale MSU
wusa.exe "C:\Path\windows10.0-kb5048654-x64.msu" /quiet /norestart

:: Installazione manuale CAB estratto
DISM /Online /Add-Package /PackagePath:"C:\Path\Windows10.0-KB5048654-x64.cab" 

Perché questa strategia funziona

La LCU si basa su un database di componenti e manifest che devono essere coerenti. Quando il repository WinSxS è danneggiato, qualsiasi tentativo che non ripristini davvero i manifest e i payload fallirà con 0x800f081f. Il repair install ricrea il baseline dei componenti preservando configurazioni e dati: è per questo che, una volta completato, Windows Update torna a funzionare e l’LCU viene applicata senza errori.


Se gestisci decine o centinaia di server: automatizza la verifica della salute del component store e prepara in anticipo un percorso di sorgente locale (ISO o repository montato) per ridurre i tempi di diagnosi in caso di futuri 0x800f081f.

Indice