When you attempt to install .NET Framework 3.5 or any other optional feature using “Windows Features” (
optionalfeatures.exe) dialog or using DISM command-line, error
0x800F0954 may popup.
After enabling .NET Framework 3.5 and clicking OK, the following error may appear:
Windows couldn’t complete the requested changes.
The changes couldn’t be completed. Please reboot your computer and try again.
Error code: 0x800F0954
The same error may occur when attempting to install additional speech recognition or supplemental fonts using Optional features in the Settings page or using DISM command-line. For instance, you run the following command to install .NET Framework 3.5 from an elevated or administrator Command Prompt.
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All
After pressing ENTER, here is the full error message you might see:
Image Version: 10.0.16299.192
DISM failed. No operation was performed.
For more information, review the log file.
The DISM log file can be found at C:\Windows\Logs\DISM\dism.log
DISM.log file would show these entries/errors:
xxxx, Info DISM DISM Package Manager: PID=12956 TID=12296 Further logs for online package and feature related operations can be found at %WINDIR%\logs\CBS\cbs.log - CPackageManagerCLIHandler::ExecuteCmdLine xxxx, Error DISM DISM.EXE: DISM Package Manager processed the command line but failed. HRESULT=800F0954
CBS.log file would have recorded these errors:
xxxx, Info CBS DWLD:Failed to do Windows update search [HRESULT = 0x800f0954 - CBS_E_INVALID_WINDOWS_UPDATE_COUNT_WSUS] xxxx, Info CBS FC: WindowsUpdateDownloadFromUUP returns. [0x800F0954]
Note that the error
0x800f0954 refers to
CBS_E_INVALID_WINDOWS_UPDATE_COUNT_WSUS which indicates that your system might have been configured to use a WSUS server (on your domain network) to get updates instead of connecting to Windows Update servers directly.
[Fix] Error 0x800F0954 Installing .NET Framework 3.5 or Any Optional Feature
If the error
0x800f0954 occurs installing optional Windows features, it may be because the system is unable to access the Windows Update server. This is especially true in case of domain-joined computers which is configured to downloads updates from a WSUS server. It could also be possible that your computer was once a part or a corporate or domain network and the group policy setting is still in place.
Method 1: Bypass WSUS to Install Features/Updates Directly from Windows Update
To fix the problem, temporarily bypass WSUS server using the following registry edit (requires administrator privileges).
- Right-click Start, and click Run
regedit.exeand click OK
- Go to the following registry key:
- On the right-pane, if the value named
UseWUServerexists, set its data to
- Exit the Registry Editor
- Restart Windows.
Note: Please note that some servers will flip the UseWUServer back to 1 on reboot. In that scenario, set it to 0, restart the Windows Update service (without rebooting), and install the required optional feature (Feature on Demand).
Automate the above, using PowerShell (admin)
Here are the PowerShell commands to automate the following steps:
- Set “UseWUServer” registry setting to 0
- Restart the Windows Update service
- Install .NET Framework (“NetFx3”)
- Then, flip “UseWUServer” back to 1.
Set-ItemProperty "REGISTRY::HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU" UseWUserver -value 0 Get-Service wuauserv | Restart-Service Add-WindowsCapability –Online -Name NetFx3~~~~ Set-ItemProperty "REGISTRY::HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU" UseWUserver -value 1
Method 2: Bypass WSUS for Repair Content/Feature On Demand Downloads
Using this method, you can bypass WSUS server only for downloading repair content and Feature-on-Demand package installation. After you enable the following setting, Windows will use Windows Update (instead of WSUS) to download the FOD packages or the files needed to repair the operating system corruption.
- Open the Group Policy Editor (
- Go to:
Computer Configuration → Policies → Administrative Templates → System
- Double-click “Specify settings for optional component installation and component repair”
- Set “Download repair content and optional features directly from Windows Update instead of Windows Server Update Services (WSUS)” to Enabled.
(This policy setting specifies the network locations that will be used for the repair of operating system corruption and for enabling optional features that have had their payload files removed.)
Alternately, use the following registry setting equivalent:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing] "RepairContentServerSource"=dword:00000002
This fixes the error
0x800f0954 when installing a feature (FOD) using GUI or DISM.
Method 3: Install .NET Framework (or Optional Features) from Windows 10/11 ISO or DVD
If the procedure under Method 1 or 2 did not help, you may use the following DISM command (with the installation source path) to install additional features from the Windows 10/11 ISO or DVD. However, you must make sure that the Windows 10 version on your DVD or ISO corresponds to the version of Windows 10/11 installed on your system.
Here are the steps to install .NET Framework 3.5 from the Windows setup disk or ISO:
- Obtain the latest Windows 10 ISO (assuming that your Windows 10/11 system is running the newest build) using the Media Creation Tool.
Editor’s note: Even better option would be to update your Windows 10 device fully, and then prepare an up-to-date Windows 10 setup disk by slipstreaming. See how to Slipstream Windows (Integrate Updates with Original Setup Disk)
- Mount the ISO image by double-clicking on the ISO file.
- Note down the drive letter of your DVD or the mounted drive, let’s say
- Open an elevated Command Prompt (Administrator) window.
- Type the following command, and press ENTER
dism /online /enable-feature /featurename:NetFX3 /Source:H:\sources\sxs /LimitAccess
Note: If you need to install the “Windows Communication Foundation (WCF) HTTP Activation” and “Windows Communication Foundation (WCF) Non-HTTP Activation”, make sure you add the
/All parameter, as seen in the above screenshot. As said earlier, these two components are usually not required for most users.
Similarly, to install other optional features using DISM, refer blog post Adding features (including .NET 3.5) to Windows 10 – Michael Niehaus’ Windows and Office deployment ramblings as well as Microsoft Docs articles DISM Capabilities Package Servicing Command-Line Options & Available features on demand
Hope this article helped you install .NET Framework 3.5 or any other optional Windows features, without getting the error
One small request: If you liked this post, please share this?One "tiny" share from you would seriously help a lot with the growth of this blog. Some great suggestions:
- Pin it!
- Share it to your favorite blog + Facebook, Reddit
- Tweet it!