Durante l'aggiunta/rimozione di ruoli/funzionalità su Windows Server o sui client Windows 10/11 è possibile imbattersi in un errore specifico:
La richiesta di aggiungere o rimuovere funzionalita' sul server specificato non e' riuscita. Impossibile installare uno o piu' ruoli, servizi ruolo o funzionalita'.Impossibile trovare l'assembly a cui fa riferimento. Errore : 0x80073701
Questo messaggio indica che i file sorgente necessari per il componente richiesto sono mancanti o corrotti all'interno dell'immagine di Windows, rendendo impossibile l'operazione.
Controlli preliminari e riavvio del sistema
Prima di procedere con la risoluzione, è fondamentale verificare se ci siano aggiornamenti in attesa di riavvio. La mancata finalizzazione di un aggiornamento può bloccare altre operazioni di sistema.Aprire un prompt dei comandi con privilegi elevati e digitare:
dism /online /get-packages /format:table | Select-String "Installazione in sospeso"
o nella versione inglese del sistema operativo
dism /online /get-packages /format:table | Select-String "Pending"
dism /online /get-packages /format:table | Select-String "Pending"
![]() |
FIG 1 - Installazione in sospeso |
Se vengono rilevati pacchetti con lo stato "Installazione in sospeso" (Pending Reboot), riavviare il computer. In alcuni rari casi, un pacchetto potrebbe rimanere in questo stato anche dopo diversi riavvii. In questa eventualità, provare a rinominare il file C:\Windows\Winsxs\Pending.xml in Pending.xml.old e riavviare nuovamente il sistema.
Ripristino dell'integrità dell'immagine di sistema
Una volta verificato che non ci siano riavvii pendenti, il passo successivo è utilizzare lo strumento DISM (Deployment Imaging and Servicing Management) per verificare e riparare l'immagine di Windows.Eseguire un controllo dell'integrità dell'immagine di sistema con il seguente comando:
DISM /Online /Cleanup-Image /CheckHealth
Se il comando restituisce il messaggio "The component store is repairable" (l'archivio dei componenti è riparabile), procedere con la riparazione.
Per riparare l'immagine, utilizzare il comando RestoreHealth. Questo comando scaricherà i file necessari da Windows Update per ripristinare i componenti danneggiati.
DISM /Online /Cleanup-Image /RestoreHealth
Dopo aver riparato l'archivio dei componenti, eseguire una scansione dei file di sistema per assicurarsi che non ci siano file danneggiati. Lo strumento SFC (System File Checker) utilizzerà l'archivio dei componenti appena riparato come fonte per i file originali.
sfc /scannow
sfc /scannow
Analisi del log CBS e intervento manuale
Se le funzionalità di Windows continuano a non installarsi, è necessario esaminare il log di Servicing Stack per identificare la causa specifica dell'errore. Il file di log si trova in %windir%\Logs\CBS\CBS.log.Cercare nel file di log un errore che indichi file di sistema mancanti relativi a un aggiornamento precedentemente installato. L'errore si presenterà in un formato simile a questo:
CBS Failed to pin deployment while resolving Update: Package_for_KB5012170~31bf3856ad364e35~amd64~~20348.880.1.1 from file: (null) [HRESULT = 0x80073701 – ERROR_SXS_ASSEMBLY_MISSING]
In questo esempio, l'errore è associato all'aggiornamento KB5012170.
Download e installazione manuale dell'aggiornamento
Il modo più semplice per risolvere questo problema è scaricare manualmente l'aggiornamento specifico dal Catalogo di Microsoft Update e installarlo. Se l'installazione tramite il file .msu non dovesse funzionare, si può estrarre il pacchetto e aggiungerlo all'immagine di Windows:Per estrarre il pacchetto MSU utilizzare il comando:
expand -f:* windows10.0-kb5012170-x64 c:\temp
Aggiungere il pacchetto all'immagine di sistema di Windows in esecuzione :
DISM.exe /Online /Add-Package /PackagePath:c:\Temp\Windows10.0-KB5012170-x64.cab
Ignorare i pacchetti danneggiati (Procedura avanzata)
ATTENZIONE: Questo metodo non è supportato ufficialmente da Microsoft e può compromettere l'integrità del sistema. Eseguire un backup completo dell'immagine di Windows o creare un punto di ripristino prima di procedere.Se l'aggiornamento non è disponibile per il download o non è applicabile, è possibile istruire Windows a ignorare il pacchetto danneggiato modificando il registro di sistema.
- Aprire l'Editor del Registro di sistema (regedit).
- Navigare alla chiave
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing - Impostare il proprio account come proprietario della chiave Component Based Servicing (l'owner predefinito è TrustedInstaller) e imopstare i permessi di controllo completo.
- Individuare la sottochiave del pacchetto da ignorare (ad es. Package_for_KB5012170).
- Modificare il valore del parametro CurrentState in 0 (Not present). Il valore precedente potrebbe essere 112 (Installed).
- Ripristinare i permessi originali sulla chiave di registro, lasciando all'amministratore solo l'accesso in sola lettura.
- Riavviare il computer e verificare se le funzionalità di Windows possono essere installate.
Per identificare tutti i pacchetti con l'errore ASSEMBLY_MISSING, puoi filtrare il log CBS con il seguente comando PowerShell:
Select-String -Path "c:\windows\logs\cbs\cbs.log" -Pattern "Failed to pin"
Aggiornamento in-place (ultima risorsa)
Se tutte le soluzioni precedenti non hanno successo, l'opzione finale è un aggiornamento in-place del sistema operativo. Questo processo reinstallerà Windows mantenendo i file personali, le impostazioni e le applicazioni.Scaricare l'immagine ISO più recente della propria versione di Windows.
Montare il file ISO e avviare il programma setup.exe.
Selezionare l'opzione "Mantieni file personali e app" quando richiesto per l'aggiornamento.
Questo metodo può risolvere problemi di integrità complessi che non possono essere corretti con i normali strumenti di riparazione, offrendo una soluzione completa.