A atualização cumulativa KB5046616 pode recusar-se a instalar no Windows Server 2022, travando na enumeração do pacote Foundation ou falhando com erros de origem ausente. Este guia explica a causa provável e traz um passo a passo prático e seguro para resolver.
Resumo do problema
Em alguns servidores com Windows Server 2022, a instalação da atualização cumulativa mais recente falha mesmo após ações comuns como sfc /scannow
, DISM /RestoreHealth
com origem local, “refresh” do Windows Update, e instalação manual via .msu
/.cab
. Entre os sintomas recorrentes estão:
- Travamento em “Enumerating Foundation package: Microsoft‑Windows‑Foundation‑Package” durante o CBS/DPX.
- Falhas anteriores mencionando Windows‑Server‑Features…amd64 e mensagens de “source not found”.
- Diferença aparente entre pilhas de serviço (SSU) listadas quando se compara com outra máquina saudável.
Esses sinais costumam indicar corrupção ou pendências na loja de componentes (WinSxS) e/ou uso de uma origem de reparo que não corresponde exatamente à edição, idioma e mídia do sistema instalado. Os códigos registados normalmente incluem 0x800f081f
(origem não encontrada) e 0x800f0831
(manifesto ausente).
O que os sintomas indicam
O Windows Server 2022 utiliza o mecanismo Component-Based Servicing (CBS). O CBS confia na loja de componentes (C:\Windows\WinSxS
) e em manifestos de pacotes para adicionar, remover e atualizar componentes. Se há pendências não concluídas, manifestos em falta ou se a origem de reparo não é idêntica ao que o sistema espera (edição, arquitetura, idioma e Desktop Experience vs Core), o CBS pode:
- Prender-se ao enumerar o pacote Foundation.
- Retornar erro de origem ausente quando tenta recuperar ficheiros do repositório.
- Rejeitar a LCU atual porque uma LCU anterior deixou o estado “pendente”.
Sobre SSU: no Server 2022 a pilha de manutenção vem combinada com a LCU. Ver múltiplas entradas de SSU em Packages é normal. Diferenças entre máquinas raramente são a causa raiz; normalmente refletem histórico de atualizações e não impedem, por si, a instalação da LCU. O foco deve permanecer no estado do WinSxS e na origem correta de reparo.
Como confirmar o diagnóstico
Antes do conserto, confirme rapidamente se o problema é pendência, origem ou corrupção. Utilize:
Sinal | Como verificar | Indicação | Ação sugerida |
---|---|---|---|
Reinício pendente | reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" dism /online /get-packages /format:table | findstr /i pending | Operações CBS incompletas | Reinicie; se persistir, reverta pendências no WinRE. |
Origem ausente | findstr /i /c:"0x800f081f" /c:"0x800f0831" C:\Windows\Logs\CBS\CBS.log type C:\Windows\Logs\DISM\dism.log | findstr /i source | DISM não encontra ficheiros | Usar ISO exata do sistema; validar índice do install.wim. |
Enumeração do pacote Foundation | Mensagens repetidas no CBS destacando Foundation | Corrupção ou pendência na loja | Reverter pendências e reparar WinSxS com origem correta. |
Referência a Features on Demand | Logs mencionam Windows‑Server‑Features‑onDemand‑Package | Conteúdo FoD ausente | Montar ISO do FoD do Server 2022 como origem adicional. |
Checklist rápido
- Reinicie e limpe pendências com
/revertpendingactions
via WinRE. - Repare com a ISO correta usando
DISM /RestoreHealth /Source:...
com índice certo. - Execute StartComponentCleanup e aplique a LCU via WUSA.
- Se surgir
0x800f0831
, aplique primeiro a LCU imediatamente anterior offline e depois a atual. - Ajuste a política de reparo de componentes e redefina o Windows Update.
- Se ainda falhar, proceda a um reparo no local preservando apps e dados.
Pré-requisitos e boas práticas
- Agende janela de manutenção; mantenha um backup verificado.
- Garanta espaço livre em
C:\
e emC:\Windows\WinSxS\Temp
(recomenda-se pelo menos 6–8 GB). - Desative temporariamente antivírus/EDR de terceiros durante a instalação.
- Se usar VM, assegure snapshots consistentes e desligue a VM antes de reverter snapshots.
Procedimento recomendado
Verificar e limpar pendências de instalação e reinício
Procure pendências; se houver, reinicie. Permanecendo presas, limpe via WinRE para evitar bloqueio de ficheiros.
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired"
dism /online /get-packages /format:table | findstr /i pending
Se o servidor continuar em estado pendente após reinício, a partir do Ambiente de Recuperação:
dism /image:C:\ /cleanup-image /revertpendingactions
Dica: Se a letra do sistema no WinRE não for C:
, confirme com diskpart → list vol
e ajuste os comandos.
Garantir uma origem de reparo correta e correspondente
Monte a ISO exata do Windows Server 2022 instalada no servidor (mesmo idioma, mesma edição — Standard ou Datacenter; mesma experiência — Core ou Desktop; arquitetura amd64). Descubra o índice correto no install.wim
:
dism /Get-WimInfo /WimFile:D:\sources\install.wim
Repare a loja de componentes com o índice correspondente e sem consultar a internet:
dism /online /cleanup-image /restorehealth /source:wim:D:\sources\install.wim:<INDICE> /limitaccess
Se a mídia tiver install.esd
, substitua wim:
por esd:
. Caso os logs citem Windows‑Server‑Features‑onDemand‑Package, monte também a ISO do FoD do Server 2022 e adicione-a como origem adicional (/source:wim:E:\sources\sxs
quando aplicável).
O que deve coincidir | Como confirmar | Comando útil |
---|---|---|
Edição | Standard vs Datacenter | dism /online /Get-CurrentEdition |
Experiência | Server Core vs Desktop Experience | systeminfo | findstr /i "Bootable GUI" (indireto) ou compare índices do WIM |
Idioma | PT-PT, PT-BR, EN-US, etc. | dism /online /Get-Intl |
Arquitetura | amd64 | Verifique na etiqueta do ISO e no índice do WIM |
Limpeza da loja de componentes e tentativa de atualização limpa
Após o RestoreHealth, reduza o acervo e remova pacotes substituídos:
dism /online /cleanup-image /startcomponentcleanup
Opcionalmente, para consolidar o baseline (irreversível):
dism /online /cleanup-image /startcomponentcleanup /resetbase
Agora instale a atualização manualmente. Deixe o Windows Update Standalone Installer gerir pré‑requisitos:
wusa.exe Windows10.0-KB5046616-x64.msu /quiet /norestart
Dica prática: durante a instalação, desconecte a rede temporariamente para evitar interferências de políticas, tarefas de varredura e actualizações em paralelo.
Redefinição robusta dos componentes do Windows Update
Se ainda falhar, redefina o cache do Windows Update e catálogos de assinatura:
net stop wuauserv
net stop cryptSvc
net stop bits
net stop msiserver
ren %windir%\SoftwareDistribution SoftwareDistribution.old
ren %windir%\System32\catroot2 Catroot2.old
net start wuauserv
net start cryptSvc
net start bits
net start msiserver
Depois, volte a procurar e aplicar as atualizações.
Resolver cenário de pacote ausente
Se os logs mostrarem 0x800f0831
ou “package missing manifest”, aplique primeiro a LCU imediatamente anterior offline e, em seguida, a atualização atual. No WinRE:
dism /image:C:\ /add-package /packagepath:D:<LCU_anterior>.cab
dism /image:C:\ /add-package /packagepath:D:\KB5046616.cab
Esta sequência repõe manifestos que podem ter sido removidos por cleanup anterior e destrava a LCU mais recente.
Ajustes de política em ambientes WSUS e proxy
Ative a política “Especificar definições para a instalação de componentes opcionais e reparação de componentes”, permitindo transferir conteúdo de reparo do Windows Update ou definindo uma origem interna. Em ambientes WSUS rígidos, desative temporariamente o uso do WSUS apenas para a reparação:
reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU ^
/v UseWUServer /t REG_DWORD /d 0 /f
net stop wuauserv & net start wuauserv
Verificações adicionais
- Execute
chkdsk /f /r
em janela de manutenção para afastar corrupção de disco. - Confirme que não há políticas de hardening a bloquear
wusa.exe
oudism.exe
. - Valide que o serviço TrustedInstaller está operacional (
Windows Modules Installer
).
Reparo no local
Como último recurso, faça uma reparação no local executando o setup.exe
da ISO do Windows Server 2022 e escolhendo manter aplicações e dados. Isto reconstrói a loja de componentes sem formatar o servidor. Após o processo, aplique novamente a atualização cumulativa.
Sequência offline sugerida
- Inicie no Ambiente de Recuperação.
- Identifique a letra da partição do Windows e ajuste os comandos.
- Reverta pendências:
dism /image:C:\ /cleanup-image /revertpendingactions
- Opcional: verifique o disco:
chkdsk C: /f /r
- Monte a ISO correta (e a ISO de FoD se necessário) e repare a loja:
dism /image:C:\ /cleanup-image /restorehealth /source:wim:D:\sources\install.wim:<INDICE> /limitaccess
- Se aplicável, injete a LCU imediatamente anterior e depois a atual:
dism /image:C:\ /add-package /packagepath:D:<LCU_anterior>.cab dism /image:C:\ /add-package /packagepath:D:\KB5046616.cab
- Reinicie no sistema e conclua com
wusa
em modo normal, caso necessário.
Dicas para leitura de logs
Para acelerar a análise, filtre pontos críticos do CBS e do DISM:
findstr /i /c:"error" /c:"failed" /c:"0x800f" C:\Windows\Logs\CBS\CBS.log > C:\Temp\cbs_errors.txt
type C:\Windows\Logs\DISM\dism.log | findstr /i /c:"source" /c:"package" /c:"manifest" > C:\Temp\dism_focus.txt
- Procure sequências do tipo “Failed to resolve source” ou “Cannot repair member file”.
- Quando vir menções repetidas ao pacote Foundation, retome os passos de pendências e reparo de origem.
- Para Features on Demand, procure referências a *.cab do FoD e confirme que o caminho
\sources\sxs
foi fornecido como fonte.
Erros comuns e como interpretar
Código | Significado prático | Causa provável | Solução direta |
---|---|---|---|
0x800f081f | Origem de ficheiros não encontrada | Mídia errada, índice errado, idioma/edição não coincidente | Validar install.wim e índice; usar /limitaccess com ISO correta |
0x800f0831 | Manifesto de pacote ausente | LCU anterior removida ou não aplicada corretamente | Adicionar LCU anterior offline e, em seguida, a atualização atual |
0x800f0922 | Falha do CBS ao aplicar alterações | Pendências ou intervenção de segurança | Reverter pendências no WinRE; desativar EDR; repetir RestoreHealth |
Exemplos práticos prontos para uso
Script de verificação rápida em PowerShell para avaliar pendências, espaço e presença do KB:
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
"$pendingWU = Test-Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired';
$pendingCBS = (dism /online /get-packages /format:table | findstr /i pending) -ne $null;
$free = (Get-PSDrive C).Free;
$kb = Get-HotFix -Id KB5046616 -ErrorAction SilentlyContinue;
[pscustomobject]@{ReinicioPendente=$pendingWU; PacotesPendentes=$pendingCBS; EspacoLivreGB=[math]::Round($free/1GB,2); KBPresente=([bool]$kb)} | Format-List"
Base para reparo com ISO montada em D:
dism /Get-WimInfo /WimFile:D:\sources\install.wim
dism /online /cleanup-image /restorehealth /source:wim:D:\sources\install.wim:<INDICE> /limitaccess
dism /online /cleanup-image /startcomponentcleanup
wusa.exe Windows10.0-KB5046616-x64.msu /quiet /norestart
Como validar que deu certo
- Confirme a presença do KB:
Get-HotFix -Id KB5046616
- Verifique pacotes instalados:
dism /online /get-packages | findstr 5046616
- Confira a compilação do sistema:
winver
- Revise o CBS para garantir ausência de erros recentes:
findstr /i /c:"error" /c:"0x800f" C:\Windows\Logs\CBS\CBS.log
Notas essenciais sobre a pilha de manutenção
No Server 2022, o SSU é entregue junto com a LCU. Por isso, ver entradas diferentes de SSU entre máquinas não implica erro. Normalmente, o que bloqueia a instalação é um estado pendente na CBS, uma origem de reparo incorreta ou a falta de um manifesto requerido. Resolva esses pontos e a LCU aplicará sem exigir um SSU isolado.
Perguntas frequentes
Posso usar uma ISO “mais nova” do que o servidor para reparar? Sim, desde que a edição/idioma combinem; porém, quando há mensagens de origem ausente, a melhor taxa de sucesso vem de usar a ISO de mesma família exata do sistema que está instalado.
Devo sempre usar /resetbase
? Não. Essa opção torna impossível desinstalar LCUs antigas. Use-a se precisa reduzir o footprint do WinSxS e já confirmou estabilidade.
O que fazer se a enumeração do pacote Foundation continua infinita? Repita a sequência: revertpendingactions no WinRE → RestoreHealth com ISO correta → StartComponentCleanup → aplicar LCU. Se persistir, faça reparo no local.
WSUS pode bloquear a reparação? Sim, ambientes WSUS restritivos podem impedir a obtenção de conteúdo de reparo. Aplique a política de Component Repair e, se necessário, desative temporariamente o uso do WSUS para a reparação, conforme mostrado acima.
Conclusão
Falhas na instalação da atualização cumulativa num servidor Windows Server 2022, acompanhadas de travamento ao enumerar o pacote Foundation e mensagens de “source not found”, em geral derivam de pendências do CBS e/ou origem de reparo inadequada. Seguindo este roteiro — limpeza de pendências, reparo com ISO correspondente, startcomponentcleanup, aplicação disciplinada da LCU e, se preciso, injeção da LCU anterior offline — a instalação tende a concluir com sucesso. Em último caso, a reparação no local recompõe a loja de componentes e devolve a capacidade de receber LCUs normalmente.
Resumo acionável
- Limpe pendências via WinRE.
- Repare com ISO idêntica (edição/idioma/experiência) usando
/source:wim:…:<INDICE>
. - Execute
/startcomponentcleanup
e aplique a LCU comwusa
. - Para
0x800f0831
, injete LCU anterior offline e, na sequência, a atual. - Ajuste política de reparo e redefina WU; se necessário, reparo no local.