Quick Summary
Error code 0x800f0954 in Windows typically indicates that the system is unable to download necessary files from Windows Update to install a feature, such as .NET Framework. This often happens when the computer is configured to use Windows Server Update Services (WSUS) but the required feature isn't approved or available on the WSUS server.
Common Causes
- WSUS Configuration Issues: The computer is configured to receive updates from a WSUS server, but the necessary components for .NET Framework are not approved or available on that WSUS server. This is a very common cause.
- Group Policy Settings: Group Policy settings might be preventing the computer from accessing Windows Update directly to download the required files. Specifically, settings related to update source or download behavior can interfere.
- Corrupted Windows Update Components: The Windows Update components may be corrupted or damaged, preventing the system from properly downloading and installing updates and features. This can lead to failures and error codes.
- Firewall or Proxy Server Issues: A firewall or proxy server could be blocking the computer from accessing the Microsoft update servers needed to download and install the .NET Framework components. Incorrect configuration or overly restrictive rules can cause this.
Step-by-Step Fixes
Method 1: Specify .NET Framework Source Files
Step 1: Download the .NET Framework offline installer corresponding to the version you are trying to install. Ensure you download the version compatible with your operating system architecture (x86 or x64).
Step 2: Open Command Prompt as an administrator (right-click on the Start menu and select "Command Prompt (Admin)" or "Windows PowerShell (Admin)").
Step 3: Run the following command, replacing "D:\sources\sxs" with the actual path to the folder containing the extracted .NET Framework installation files:
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /Source:D:\sources\sxs /LimitAccess (Replace NetFX3 with NetFx4, NetFx4Client, or NetFx4Full depending on the .NET package you need)
Step 4: Monitor the progress in the command prompt. The installation should proceed using the specified source files.
Method 2: Configure Group Policy to Use Windows Update Directly
Step 1: Open the Group Policy Editor (gpedit.msc) if you are using a Professional edition of Windows. For Home editions, this method isn't directly available.
Step 2: Navigate to: Computer Configuration > Administrative Templates > System
Step 3: Locate the setting "Specify settings for optional component installation and component repair".
Step 4: Enable this setting. Then, check the box that indicates to "Download repair content and Optional Features directly from Windows Update instead of from a WSUS".
Step 5: Run gpupdate /force in an elevated command prompt to apply the changes immediately.
Method 3: Use DISM with Windows Installation Media
Step 1: Mount the Windows installation ISO or insert the Windows installation DVD.
Step 2: Determine the drive letter assigned to the mounted ISO or DVD drive (e.g., E:).
Step 3: Open Command Prompt as an administrator.
Step 4: Run the following command, replacing "E:\sources\sxs" with the correct path:
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /Source:E:\sources\sxs /LimitAccess (Replace NetFX3 with NetFx4, NetFx4Client, or NetFx4Full depending on the .NET package you need)
Step 5: Wait for the command to complete successfully.
Method 4: Reset Windows Update Components
Step 1: Open Command Prompt as an administrator.
Step 2: Stop the Windows Update service, the Cryptographic service, BITS service and the MSI Installer service by running the following commands:
net stop wuauserv
net stop cryptSvc
net stop bits
net stop msiserver
Step 3: Rename the SoftwareDistribution and Catroot2 folders to SoftwareDistribution.old and Catroot2.old. These folders are located in C:\Windows.
ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
ren C:\Windows\System32\catroot2 Catroot2.old
Step 4: Start the services again:
net start wuauserv
net start cryptSvc
net start bits
net start msiserver
Step 5: Try installing .NET Framework again.