{"id":3332,"date":"2023-11-06T15:27:42","date_gmt":"2023-11-06T15:27:42","guid":{"rendered":"https:\/\/leinss.com\/blog\/?p=3332"},"modified":"2023-11-06T15:59:25","modified_gmt":"2023-11-06T15:59:25","slug":"adding-net-framework-3-5-error-code-0x800f0954","status":"publish","type":"post","link":"https:\/\/leinss.com\/blog\/?p=3332","title":{"rendered":"Adding .NET Framework 3.5 &#8211; Error Code 0x800f0954"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Here we go again: another server, another error.  Why can&#8217;t things just work properly?  Had a consultant e-mail me they couldn&#8217;t load .NET Framework 3.5 on Windows Server 2019.  &#8220;Easy peasy lemon squeezy&#8221; I thought.  Well, of course, it wasn&#8217;t that easy.  Attempts to load this feature ended up with error code 0x800f0954.   What in the hades is error code 0x800f0954?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Time to hit the Google and wow, there&#8217;s a bunch of random articles on this error code.  I already had a hunch this had something to do with WSUS.  We use SCCM in our environment and SCCM sets the WSUS server in the client registry to a WSUS server without any binaries, an empty WSUS server if you will.  I usually fix that by deleting the whole registry key <code>HKEY_LOCAL_MACHINE\\SOFTWARE\\Policies\\Microsoft\\Windows\\WindowsUpdate\\AU<\/code>.  The SCCM client will recreate this key periodically.  Unfortunately, this did not work.  Where to look?  Our old friend C:\\windows\\logs\\cbs\\cbs.log and we find:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>2023-11-01 13:12:37, Info CBS External EvaluateApplicability, package: Package_8_for_KB5031005~31bf3856ad364e35~amd64~~10.0.4069.1, package applicable State: Installed, highest update applicable state: Installed, resulting applicable state:Installed<br>2023-11-01 13:12:37, Info CBS External EvaluateApplicability, package: Package_for_DotNetRollup~31bf3856ad364e35~amd64~~10.0.4069.1, package applicable State: Installed, highest update applicable state: Installed, resulting applicable state:Installed<br>2023-11-01 13:12:37, Info CBS DLWD: Expecting search returns 1 update, actual:0 [HRESULT = 0x800f0954 - CBS_E_INVALID_WINDOWS_UPDATE_COUNT_WSUS]<br>2023-11-01 13:12:37, Info CBS DWLD:Failed to do Windows update search [HRESULT = 0x800f0954 - CBS_E_INVALID_WINDOWS_UPDATE_COUNT_WSUS]<br>2023-11-01 13:12:37, Info CBS FC: WindowsUpdateDownloadFromUUP returns. [0x800F0954]<br>2023-11-01 13:12:37, Error CBS FC: CFCAcquirerWUClient::Download(136): Result = 0x800F0954<br>2023-11-01 13:12:37, Error CBS FC: CFCAcquirerWrapper::Execute(147): Result = 0x800F0954<br>2023-11-01 13:12:37, Info CBS Exec: Failed to download FOD from WU, retry onece. [HRESULT = 0x800f0954 - CBS_E_INVALID_WINDOWS_UPDATE_COUNT_WSUS]<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It<strong> IS<\/strong> a WSUS problem, but why didn&#8217;t deleting the WindowsUpdate registry key help?  Well, it appears the WindowsUpdate service only reads this registry key when it starts and if you change or delete this key after it&#8217;s running you have to restart the service so it takes note of the new changes.  Oh, I like the misspelling of &#8220;retry onece&#8221; in the logs. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It also didn&#8217;t matter if I tried to point Powershell or DISM directly to the binaries in the SxS folder, it wasn&#8217;t having anything of that without being able to reach out to Windows Update.  Odd.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What&#8217;s so frustrating is that I cannot find this error code in any lookup tool such as helpmsg or cmtrace.  It&#8217;s not documented anywhere I can find.  If the program had spit out the whole error message instead of just some random hex code, I could have saved 30 minutes of my life doing something really important, like fixing someone&#8217;s Office 365 mailbox that they deleted all of the e-mails out of (oof).<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Soli Deo Gloria<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Here we go again: another server, another error. Why can&#8217;t things just work properly? Had a consultant e-mail me they couldn&#8217;t load .NET Framework 3.5 on Windows Server 2019. &#8220;Easy peasy lemon squeezy&#8221; I thought. Well, of course, it wasn&#8217;t that easy. Attempts to load this feature ended up with error code 0x800f0954. What in &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/leinss.com\/blog\/?p=3332\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Adding .NET Framework 3.5 &#8211; Error Code 0x800f0954&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[4,7],"tags":[],"class_list":["post-3332","post","type-post","status-publish","format-standard","hentry","category-operating-system","category-tech-tips"],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p7wiG8-RK","jetpack-related-posts":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/leinss.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3332","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/leinss.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/leinss.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/leinss.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/leinss.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3332"}],"version-history":[{"count":11,"href":"https:\/\/leinss.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3332\/revisions"}],"predecessor-version":[{"id":3349,"href":"https:\/\/leinss.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3332\/revisions\/3349"}],"wp:attachment":[{"href":"https:\/\/leinss.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3332"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/leinss.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3332"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/leinss.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3332"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}