I have seven Server 2019 systems that I maintain that do not have a connection to the internet or an MECM or WSUS. So far, I have been patching them with a WSUS Offline tool that I found that pulls down updates and zips it up. You run an executable of the tool and it checks your system to see what you need and installs. It works good for monthly Windows patches. It does not work good for dotNet Framework or Windows Defender.
The next thing I did to try to get dotNet patched was I went to Download .NET Framework | Free official downloads and downloaded the "NDP48-x86-x64-AllOS-ENU.exe". I get that over to the server. First, I uninstall the current version:
# Uninstall:
NDP481-x86-x64-AllOS-ENU.exe /passive /uninstall
The uninstall completes successfully.
Then I try to install the patched version. I first try:
# Install:
NDP481-x86-x64-AllOS-ENU.exe /passive /promptrestart
That didn't work, so I removed the switches and tried this:
NDP481-x86-x64-AllOS-ENU.exe /log .\dotnet.log
Here are screenshots of how the installation goes:
I go to the log file (which happens to be an html file). The log file says it cannot find object or property of a specific CAB file. But you can see in this next screenshot that the CAB file is there:
I next go to that CBS.log file that the dot net log file mentions (the CBS log file is over 101K lines). In that CBS.log file, it sees that CAB file and extracts files from it:
It then goes through many of lines like these, the only difference being this highlighted part. But it is the specified KB number from the original error.
I know that screenshot is cut off. Here is the full line:
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
After each line that starts with "Plan:", it has a bunch of "Appl:" lines:
This goes on for about 20 iterations. But then it gets to this one and it cannot find the parent package:
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
After that, I get more stuck. I don't know where it is looking for those files, so I am unable to verify it or dig deeper into that specific file issue.
I've rebooted the system multiple times.
Edit: I believe I am using the correct version of dot Net Framework to patch. I do not have a desire or intent to change the version except to patch security vulnerabilities/CVEs.
I used this to check the version:
> 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
That looks to me like I should be trying to use the 4.8 version to patch. But if I'm mistaken, please enlighten me.
If anyone can offer any suggestions or help, that would be greatly appreciated.