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.


