Tenho sete sistemas Server 2019 que mantenho e que não têm conexão com a internet ou um MECM ou WSUS. Até agora, tenho feito patches neles com uma ferramenta WSUS Offline que descobri que baixa atualizações e as compacta. Você executa um executável da ferramenta e ela verifica seu sistema para ver o que você precisa e instala. Ela funciona bem para patches mensais do Windows. Ela não funciona bem para dotNet Framework ou Windows Defender.
A próxima coisa que fiz para tentar corrigir o dotNet foi ir em Download .NET Framework | Downloads oficiais gratuitos e baixar o "NDP48-x86-x64-AllOS-ENU.exe". Eu o levei para o servidor. Primeiro, desinstalei a versão atual:
# Uninstall:
NDP481-x86-x64-AllOS-ENU.exe /passive /uninstall
A desinstalação foi concluída com sucesso.
Então eu tento instalar a versão corrigida. Primeiro eu tento:
# Install:
NDP481-x86-x64-AllOS-ENU.exe /passive /promptrestart
Isso não funcionou, então removi os interruptores e tentei isto:
NDP481-x86-x64-AllOS-ENU.exe /log .\dotnet.log
Aqui estão algumas capturas de tela de como a instalação ocorre:
Vou para o arquivo de log (que por acaso é um arquivo html). O arquivo de log diz que não consegue encontrar objeto ou propriedade de um arquivo CAB específico. Mas você pode ver nesta próxima captura de tela que o arquivo CAB está lá:
Em seguida, vou para o arquivo CBS.log que o arquivo de log dot net menciona (o arquivo de log CBS tem mais de 101 mil linhas). No arquivo CBS.log, ele vê o arquivo CAB e extrai arquivos dele:
Ele então passa por muitas linhas como essas, a única diferença sendo essa parte destacada. Mas é o número KB especificado do erro original. Eu sei que a captura de tela está cortada. Aqui está a linha completa:
Plan: Package: Package_for_KB4486153~31bf3856ad364e35~amd64~~10.0.1.2919, Update: 4486153-1679_neutral_PACKAGE, current: Installed, pending: Default, start: Installed, applicable: Installed, targeted: Superseded, limit: Installed, selected: Default
Depois de cada linha que começa com "Plan:", há um monte de linhas "Appl:":
Isso continua por cerca de 20 iterações. Mas então ele chega a esta e não consegue encontrar o pacote pai:
2024-12-05 07:27:56, Info CBS Plan: Package: Package_for_KB4486153~31bf3856ad364e35~amd64~~10.0.1.2919, Update: 4486153-1685_neutral_PACKAGE, current: Installed, pending: Default, start: Installed, applicable: Installed, targeted: Superseded, limit: Installed, selected: Default
2024-12-05 07:27:56, Info CBS Appl: detect Parent, Package: Package_6_for_KB4486153~31bf3856ad364e35~amd64~~10.0.1.2919, Parent: Microsoft-Windows-Client-Features-WOW64-Package0017~31bf3856ad364e35~amd64~~10.0.16299.15, Disposition = Detect, VersionComp: EQ, BuildComp: GE, RevisionComp: GE, Exist: present
2024-12-05 07:27:56, Info CBS Appl: detectParent: no parent found, go absent
2024-12-05 07:27:56, Info CBS Appl: detect Parent, Package: Package_6_for_KB4486153~31bf3856ad364e35~amd64~~10.0.1.2919, Parent: Microsoft-Windows-ServerCore-SKU-Foundation-WOW64-onecore-Package~31bf3856ad364e35~amd64~~10.0.16299.15, Disposition = Detect, VersionComp: EQ, BuildComp: GE, RevisionComp: GE, Exist: present
2024-12-05 07:27:56, Info CBS Appl: detectParent: parent found: Microsoft-Windows-ServerCore-SKU-Foundation-WOW64-onecore-Package~31bf3856ad364e35~amd64~~10.0.17763.1, state: Installed
2024-12-05 07:27:56, Info CBS Appl: detect Parent, Package: Package_6_for_KB4486153~31bf3856ad364e35~amd64~~10.0.1.2919, Parent: Microsoft-Windows-CloudEdition~31bf3856ad364e35~amd64~~10.0.16299.15, Disposition = Detect, VersionComp: EQ, BuildComp: GE, RevisionComp: GE, Exist: present
2024-12-05 07:27:56, Info CBS Appl: detectParent: no parent found, go absent
2024-12-05 07:27:56, Info CBS Appl: detect Parent, Package: Package_6_for_KB4486153~31bf3856ad364e35~amd64~~10.0.1.2919, Parent: Microsoft-Windows-CloudNEdition~31bf3856ad364e35~amd64~~10.0.16299.15, Disposition = Detect, VersionComp: EQ, BuildComp: GE, RevisionComp: GE, Exist: present
2024-12-05 07:27:56, Info CBS Appl: detectParent: no parent found, go absent
2024-12-05 07:27:56, Info CBS Appl: detect Parent, Package: Package_6_for_KB4486153~31bf3856ad364e35~amd64~~10.0.1.2919, Parent: Microsoft-Windows-CoreCountrySpecificEdition~31bf3856ad364e35~amd64~~10.0.16299.15, Disposition = Detect, VersionComp: EQ, BuildComp: GE, RevisionComp: GE, Exist: present
2024-12-05 07:27:56, Info CBS Appl: detectParent: no parent found, go absent
2024-12-05 07:27:56, Info CBS Appl: detect Parent, Package: Package_6_for_KB4486153~31bf3856ad364e35~amd64~~10.0.1.2919, Parent: Microsoft-Windows-CoreEdition~31bf3856ad364e35~amd64~~10.0.16299.15, Disposition = Detect, VersionComp: EQ, BuildComp: GE, RevisionComp: GE, Exist: present
2024-12-05 07:27:56, Info CBS Appl: detectParent: no parent found, go absent
2024-12-05 07:27:56, Info CBS Appl: detect Parent, Package: Package_6_for_KB4486153~31bf3856ad364e35~amd64~~10.0.1.2919, Parent: Microsoft-Windows-CoreNEdition~31bf3856ad364e35~amd64~~10.0.16299.15, Disposition = Detect, VersionComp: EQ, BuildComp: GE, RevisionComp: GE, Exist: present
Depois disso, fico mais preso. Não sei onde ele está procurando por esses arquivos, então não consigo verificar ou me aprofundar mais naquele problema específico do arquivo.
Reiniciei o sistema várias vezes.
Editar: Acredito que estou usando a versão correta do dot Net Framework para aplicar o patch. Não tenho desejo ou intenção de alterar a versão, exceto para aplicar o patch em vulnerabilidades de segurança/CVEs.
Usei isto para verificar a versão:
> Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse | Get-ItemProperty -Name version -EA 0 | Where { $_.PSChildName -Match '^(?!S)\p{L}'} | Sort-Object -Property Version | Select PSChildName, version
PSChildName Version
----------- -------
v2.0.50727 2.0.50727.4927
v3.0 3.0.30729.4926
Windows Communication Foundation 3.0.4506.4926
Windows Presentation Foundation 3.0.6920.4902
v3.5 3.5.30729.4926
Client 4.0.0.0
Client 4.8.03761
Full 4.8.03761
> (Get-ItemProperty "HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full").Release
528049
> (C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe -version)[4]
4.8.3761.0
Isso me parece que eu deveria tentar usar a versão 4.8 para corrigir. Mas se eu estiver enganado, por favor, me esclareça.
Se alguém puder oferecer alguma sugestão ou ajuda, ficaria muito grato.
A versão 528049 é o .NET 4.8 instalado. Você precisa baixar e instalar a atualização cumulativa de dezembro de 2024 KB5046265.
https://learn.microsoft.com/en-us/dotnet/framework/migration-guide/versions-and-dependencies
https://learn.microsoft.com/en-us/dotnet/framework/release-notes/2024/11-12-november-security-and-quality-rollup
https://support.microsoft.com/en-us/topic/november-12-2024-kb5046265-cumulative-update-for-net-framework-3-5-and-4-8-for-windows-server- 2022-738751c7-84fb-49f0-9c02-11e29b629b81