Su Windows Server 2022 può capitare che Windows Update fallisca con 0x80070005 (talvolta scritto 0x800070005). In questa guida trovi cause, diagnosi rapide e procedure sicure passo‑passo per ripristinare gli aggiornamenti senza reinstallare, con comandi pronti all’uso.
Panoramica del problema
Il codice 0x80070005 corrisponde a Accesso negato (Access is denied). In ambito Windows Update segnala quasi sempre una combinazione di permessi insufficienti, servizi non in esecuzione, cache corrotta o componenti di manutenzione (servicing) in stato incoerente. Su Windows Server 2022 l’errore può emergere durante la ricerca, il download o l’installazione dei cumulativi, dei .NET Update o dei driver.
Nel linguaggio comune si trova talvolta la variante 0x800070005 (con uno zero in più): è un refuso che si riferisce allo stesso problema.
Sintomi tipici
- Windows Update segnala “Si sono verificati alcuni problemi durante l’installazione degli aggiornamenti” con codice 0x80070005.
- Eventi nel registro WindowsUpdateClient o nel Setup riportano accesso negato a file in
C:\Windows\SoftwareDistribution
, a chiavi di registro o a componenti CBS. - Installazione del cumulativo che si avvia, arriva a una certa percentuale e poi si annulla al riavvio.
- Su server gestiti da WSUS, la macchina vede gli aggiornamenti ma non riesce a installarli.
Perché accade
Le cause più comuni su Windows Server 2022 sono:
- Percorsi di cache corrotti (
SoftwareDistribution
) o componenti di servicing in stato “sporco”. - Permessi o ACL alterati su cartelle di sistema o chiavi di registro.
- Servizi necessari (BITS, Windows Update, Cryptographic Services, MSI Installer) non avviati o bloccati da endpoint protection.
- SSU obsoleta (Servicing Stack Update) rispetto ai cumulativi richiesti.
- Spazio su disco insufficiente, soprattutto su partizione di sistema o su system reserved.
- GPO o criteri di sicurezza che rimuovono diritti essenziali al servizio TrustedInstaller o all’account di servizio.
- Proxy o ispezione TLS che interrompono la catena di update/scansione.
Procedura consigliata passo‑passo
Di seguito la sequenza più efficace e a basso rischio per riportare Windows Update in stato coerente su Windows Server 2022.
- Eseguire lo strumento di risoluzione problemi “Windows Update” Percorso: Impostazioni → Aggiornamento e Sicurezza → Risoluzione dei problemi → Strumenti aggiuntivi → Windows Update. Lo strumento verifica servizi, criteri basilari e cache, applicando correzioni automatiche non invasive. Dopo l’esecuzione, riprovare la ricerca degli aggiornamenti.
- Reimpostare manualmente i componenti di Windows Update Aprire Prompt dei comandi come Amministratore ed eseguire in sequenza:
net stop wuauserv net stop cryptSvc net stop bits net stop msiserver ren C:\Windows\SoftwareDistribution SoftwareDistribution.old1 net start wuauserv net start cryptSvc net start bits net start msiserver dism /online /cleanup-image /startcomponentcleanup
Quindi riavviare il server. Il rinomina della cartellaSoftwareDistribution
forza la ricreazione della cache. Il comandoStartComponentCleanup
ripulisce i componenti obsoleti per recuperare spazio e consistenza. - Riparare file di sistema e immagine del sistema operativo
DISM /Online /Cleanup-Image /RestoreHealth sfc /scannow
DISM
ripara i componenti di servicing;SFC
verifica e ripristina file protetti. In caso di violazioni riparate, riavviare e ripetere la ricerca degli aggiornamenti.
Suggerimenti aggiuntivi utili
Verifica | Motivo | Azione consigliata |
---|---|---|
Permessi amministrativi | L’errore è spesso legato a diritti insufficienti. | Assicurarsi di utilizzare un account con privilegi di amministratore locale. |
Servicing Stack Update (SSU) | Una SSU obsoleta può impedire nuovi aggiornamenti. | Installare manualmente l’ultima SSU dal Catalogo Microsoft Update. |
Antivirus / Endpoint Protection | Alcuni agenti bloccano i servizi BITS/WUA. | Disattivare temporaneamente o creare eccezioni per wuauclt.exe , svchost.exe e bitsadmin.exe . |
Spazio su disco | Aggiornamenti cumulativi richiedono diversi GB liberi. | Liberare spazio o estendere la partizione di sistema. |
Log dettagliati | Gli eventi 0x80070005 possono nascondere cause diverse. | Analizzare C:\Windows\Logs\CBS\CBS.log e C:\Windows\WindowsUpdate.log per indizi specifici. |
Verifica dello stato dopo la correzione
Dopo i passaggi precedenti è utile validare rapidamente che l’infrastruttura degli aggiornamenti sia tornata operativa.
- Forzare una nuova scansione:
usoclient StartScan usoclient StartDownload usoclient StartInstall
Nota: su alcune build i comandi USOClient richiedono contesto di sistema; in alternativa usare la GUI osconfig
su Server Core. - Controllare i servizi:
sc query wuauserv sc query bits sc query cryptsvc sc query msiserver
- Generare il log di Windows Update (se non presente in chiaro):
Get-WindowsUpdateLog
Il file risultante viene scritto sul Desktop dell’utente corrente. - Verificare gli ultimi eventi:
wevtutil qe Microsoft-Windows-WindowsUpdateClient/Operational /c:50 /f:text /q:"*[System[(Level=2 or Level=3)]]"
Approfondimenti sulle cause più comuni
Permessi e ACL
Se l’accesso negato riguarda SoftwareDistribution
o chiavi di registro, significa che ACL, proprietario o privilegi sono stati alterati da hardening o da software di sicurezza. Evita di forzare “take ownership” indiscriminato su C:\Windows
: è una pratica rischiosa. Agisci in modo mirato, ripristinando i diritti standard solo dove necessario o rimuovendo policy conflittuali.
Servizi bloccati da sicurezza
Alcuni agenti EDR con application control o network inspection bloccano BITS/WUA o l’accesso ad URL di update. Per la diagnosi, imposta l’agente in audit e osserva i log: se l’installazione riesce, crea eccezioni permanenti per i binari e i domini di Microsoft Update. Ricorda di riabilitare la protezione al termine del test.
SSU e coerenza del servicing
Se la Servicing Stack Update è troppo vecchia, il cumulativo non si installa. L’installazione manuale della SSU più recente (seguendo l’architettura corretta) risolve spesso la condizione di stallo.
Spazio su disco
Verifica sia il volume C:
che la partizione riservata al sistema. Per i cumulativi sono raccomandati almeno 6–8 GB liberi. Se lo spazio è tirato, valuta dism /online /cleanup-image /startcomponentcleanup /resetbase
(da usare solo in scenari specifici, perché rende permanenti alcuni componenti e può impedire la disinstallazione di update).
GPO e criteri
Impostazioni troppo restrittive su Windows Update o sui diritti di servizio possono causare 0x80070005. Una rapida fotografia:
gpresult /r /scope computer
Controlla in particolare i percorsi di Criteri di Gruppo relativi a Windows Update e a “User Rights Assignment”.
Altri interventi utili e sicuri
I passaggi seguenti sono opzionali e vanno eseguiti solo se i precedenti non bastano o se i log indicano chiaramente il punto di rottura.
Reset di Catroot2
Se il log evidenzia problemi di verifica firma o cataloghi, oltre a fermare Cryptographic Services puoi rigenerare catroot2
:
net stop cryptsvc
ren C:\Windows\System32\catroot2 catroot2.old
net start cryptsvc
Pulizia della coda BITS
Una coda BITS corrotta può bloccare i download. Da PowerShell:
Get-BitsTransfer -AllUsers | Remove-BitsTransfer
Verifica del proxy
Controlla configurazioni WinHTTP che possono differire dal proxy di sistema:
netsh winhttp show proxy
Se serve, importa le impostazioni dal browser di sistema:
netsh winhttp import proxy source=ie
Server Core e sconfig
Su installazioni Server Core, usa sconfig
per configurare e avviare la ricerca/installa degli update. È spesso il modo più affidabile di interagire con Windows Update in assenza di GUI.
Controllo dei pacchetti pendenti
Per capire cosa è in sospeso:
dism /online /get-packages | findstr /i pending
Se vedi pacchetti in stato “Install Pending” per più riavvii, valuta dism /revertpendingactions
(estrema ratio, potrebbe rimuovere update in attesa).
Percorso di escalation
- Avvio in modalità provvisoria con rete e ripetizione di
DISM
/SFC
. In modalità ridotta è più facile sbloccare file e servizi. - Creazione di un nuovo profilo amministrativo e tentativo di update da quell’account, per escludere profili corrotti.
- Installazione manuale del singolo KB da WSUS o dal Catalogo Microsoft Update, utile per sbloccare la catena.
- Ticket al supporto Microsoft allegando
CBS.log
e log di Windows Update compressi. Includi anche l’output diDISM /Online /Get-OSBuildInfo
e unmsinfo32
.
Pattern ricorrenti nei log
Indicazione | Probabile causa | Azione |
---|---|---|
0x80070005 - E_ACCESSDENIED su file in SoftwareDistribution\Download | ACL corrotte / antivirus | Reset cache, esclusione AV, controllo permessi |
Fallimento CSI Transaction in CBS.log | Component Store incoerente | DISM /RestoreHealth + SFC |
Errori di Catalog verification | Catroot2 danneggiata | Reset catroot2 |
Eventi di tipo Policy in WindowsUpdateClient | GPO troppo restrittiva | Revisione criteri, gpresult |
Automazione con PowerShell
Per ambienti dove il problema si ripete, questo script esegue le azioni principali in modo idempotente. Usalo in finestre di manutenzione e dopo un backup/snapshot.
# Eseguire in PowerShell come Amministratore
Write-Host "== Ripristino Windows Update =="
$services = @("wuauserv","bits","cryptsvc","msiserver")
foreach ($s in $services) { Stop-Service -Name $s -ErrorAction SilentlyContinue }
$sd = "$env:WINDIR\SoftwareDistribution"
if (Test-Path $sd) {
$backup = "$sd.old{0:yyyyMMddHHmmss}" -f (Get-Date)
Rename-Item $sd $backup -ErrorAction SilentlyContinue
Write-Host "Cache rinominata in $backup"
}
foreach ($s in $services) { Start-Service -Name $s -ErrorAction SilentlyContinue }
dism /online /cleanup-image /startcomponentcleanup
Write-Host "== DISM RestoreHealth =="
dism /online /cleanup-image /restorehealth
Write-Host "== SFC /SCANNOW =="
sfc /scannow
Write-Host "== Avvio scansione aggiornamenti =="
try { usoclient StartScan } catch { Write-Host "USOClient non disponibile in questo contesto" }
Domande frequenti
Serve disattivare l’antivirus?
Non è obbligatorio. È utile solo per test, quando i log mostrano chiusure su processi o cartelle di update. Se disattivi, fallo temporaneamente e prevedi eccezioni mirate in seguito.
È necessario eliminare la cartella SoftwareDistribution
?
No. È sufficiente rinominarla per preservare un rollback d’emergenza e lasciare a Windows la ricreazione pulita della cache.
Qual è l’ordine corretto tra DISM e SFC?
Prima DISM /RestoreHealth
, poi SFC /Scannow
. DISM ripara l’immagine; SFC sfrutta quell’immagine per ripristinare i file protetti.
Posso usare wuauclt /detectnow
?
È deprecato ma può ancora funzionare in alcuni contesti. Su Server 2022 è preferibile USOClient
o la GUI/sconfig.
Quando contattare il supporto?
Se dopo i passaggi e l’escalation l’errore persiste o se i log evidenziano corruzioni ripetute del component store, apri un ticket allegando i log richiesti e i dettagli dell’ambiente.
Checklist rapida prima di riprovare l’installazione
Controllo | Comando veloce | Esito atteso |
---|---|---|
Spazio su disco | fsutil volume diskfree c: | Almeno 6–8 GB liberi |
Servizi attivi | sc query wuauserv|find "STATE" | RUNNING |
Proxy WinHTTP | netsh winhttp show proxy | Coerente con la policy |
Component store | dism /online /cleanup-image /checkhealth | Nessuna corruzione riparabile |
Eventi recenti | wevtutil qe ...WindowsUpdateClient... | Niente errori di accesso |
Note per ambienti gestiti
- WSUS: verifica lo stato di approvazione, i limiti di banda BITS e la sincronizzazione. Su client che non avanzano, un’installazione manuale del KB “bloccato” sblocca spesso la coda.
- Cluster e RU: pianifica aggiornamenti a nodi alternati, verifica spazio e riavvii pianificati per non interrompere quorum e ruoli.
- Golden image: aggiorna regolarmente l’immagine di riferimento per evitare bootstrap con SSU troppo vecchie.
Appendice di comandi utili
winver
systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
dism /online /get-osbuildinfo
dism /online /get-packages /format:table
Get-WindowsUpdateLog
gpresult /r /scope computer
bitsadmin /list /allusers
sconfig
Riepilogo operativo
Per l’errore 0x80070005 su Windows Server 2022, la triade risoluzione problemi → reset componenti → DISM/SFC risolve la grande maggioranza dei casi. Integra con i controlli mirati della tabella (permessi, SSU, antivirus, spazio, log) e adotta l’escalation proposta qualora il problema persista. Con questi interventi mirati è in genere possibile riportare Windows Update a uno stato stabile senza formattare o reinstallare.
Procedura di riferimento rapida
- Avvia lo strumento di risoluzione problemi di Windows Update.
- Resetta i componenti (servizi stop → rinomina
SoftwareDistribution
→ servizi start →StartComponentCleanup
→ riavvio). - Esegui
DISM /RestoreHealth
eSFC /Scannow
. - Controlla SSU, antivirus, spazio e log con la checklist.
- Se necessario, applica l’escalation (modalità provvisoria, nuovo profilo, installazione manuale KB, ticket).
Nota operativa: esegui sempre questi interventi in una finestra di manutenzione, con backup o snapshot disponibili, soprattutto su server di produzione.