Hello everyone and apologies if I am repeating a topic somewhere.
I need help. Here’s what we were happily using. SCCM latest version installed on a server using WSUS to sync/download updates. Clients are W10 99% and a lost soul here and there with a 8.1 or 8. We were downloading and pushing updating for All versions of windows from 7 to 10 and everything was great. Now, all of a sudden, I have W10 clients (the ones I’ve checked are 1507, 1511) that no longer show any updates in their Software Centers. WUAHandler.log on the machines show «SourceManager::GetIsWUfBEnabled — There is no Windows Update for Business settings assignment. Windows Update for Business is not enabled through ConfigMgr». I have not set and we are not using WUfB at all. Newer clients on 1709 are getting software updates fine through SCCM and Software Center.
Things I’ve checked:
No GPOs set to use WUfB, or any Deferral policies. We have the following:
1. Turn off access to all Windows updates features. — Enabled
2. Allow automatic updates immediate installation — Enabled
3. Configure Automatic updates — Disabled
4. Do not allow update deferral policies to cause scans against Windows Update — Enabled (just added this trying to figure out what’s going on).
Everywhere I’ve looked on MS it talks about setting WUfB, which I have not done. Why am I suddenly forced to use it? How can I revert these machines to use SCCM and Software Center again? Can someone give me a 10k ft overview of WUfB. Is it meant to work in conjunction with SCCM?
Thank you in advance!
Update: Just found out that some v1709 machines have also reverted to using WUfB, am I being taken over?
Edited by Izrod
If no updates show up in Software Center (while there should be) you preferably start searching in you SCCM log files for errors.
Logfiles ScanAgent.log and WUAHandler.log are a good place to start. These are by default located in C:\Windows\CCM\Logs\
Hint: use CMTrace (Configuration Manager Trace Log Tool to get a readable log file with highlighted errors)
I found the following errors:
Failed to Add Update Source for WUAgent of type (2) and id ({82ADFE9C-FB95-4F72-B0B7-114F9A4A3A43}). Error = 0x800703ee.
Unable to read existing WUA Group Policy object. Error = 0x800703ee.
CScanJob::Execute- Failed at AddUpdateSource, Error = 0x800703ee
In case of error 0x800703ee, here’s how to fix it
- Browse to the following folder on the problematic machine:
C:\Windows\System32\GroupPolicy\Machine\
(note: this folder may be hidden) - Notice there’s a Registry.pol file, which file date is probably a while ago
Delete that file - From a command prompt, run GPUpdate /force
Notice the Registry.pol file is recreated. If not, reboot the machine. - From Control Panel, open Configuration Manager Properties. Go to tab Actions and choose Software Updates Scan Cycle
- In a few minutes new updates should appear in your Software Center. Recheck your logfiles for further errors if the problem remains.
Still having issues? Leave a comment! I will update this article if necessary.
For further reference, these are the lines you may see:
Its a WSUS Update Source type ({GUID string}), adding it. WUAHandler 3/4/2019 1:42:00 PM 404 (0x0194)
Not RS3+, this device is SCCM managed. WUAHandler 3/4/2019 1:42:00 PM 3872 (0x0F20)
SourceManager::GetIsWUfBEnabled – There is no Windows Update for Business settings assignment. Windows Update for Business is not enabled through ConfigMgr WUAHandler 3/4/2019 1:42:00 PM 3872 (0x0F20)
Unable to read existing WUA Group Policy object. Error = 0x800703ee. WUAHandler 3/4/2019 1:42:00 PM 404 (0x0194)
Enabling WUA Managed server policy to use server: http://SCCMserver:8530 WUAHandler 3/4/2019 1:42:00 PM 404 (0x0194)
Not RS3+, this device is SCCM managed. WUAHandler 3/4/2019 1:42:00 PM 4988 (0x137C)
SourceManager::GetIsWUfBEnabled – There is no Windows Update for Business settings assignment. Windows Update for Business is not enabled through ConfigMgr WUAHandler 3/4/2019 1:42:00 PM 4988 (0x137C)
Failed to Add Update Source for WUAgent of type (2) and id ({GUID string}). Error = 0x800703ee. WUAHandler 3/4/2019 1:42:00 PM 404 (0x0194)
-
Thread Starter
-
-
#2
The issue is resolved now.
For those who are having the same issue: Denying third party updates alone wouldn’t resolve the issue. They have to be deleted from WSUS database. I used script from https://gallery.technet.microsoft.com/Delete-3rd-Party-Updates-e5bf19fe/view/Discussions to delete 3rd party updates. Since script is using only WSUS Powershell library exposed interface for operation, I think the script is safe to be run.
Please do share thoughts.
Regards,
-
-
#3
Hello gafoorgk and Prajwal,
this thread give me a lot of clues and a possible solution for the same issue i’m encountering in my organization.
The problem here is with SCCM CB 1810 RU2, same 8024000F entry found everywhere (Client and Server), with no wsus sync; I’ve been able to identify 2 offending updates with SQL query (both Dell Bios Updates, already removed from SUSDB).
After that, nothing improved and updates deployments are still blocked, so I’ve tried the script U suggested to remove third-party updates but while in test it worked (only 134 rows), now in Production there are more than 8000 entries…so the response is that:
GAC Version Location
— ——- ———
True v4.0.30319 C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.UpdateServices.Administration\v4.0_4.0.0….
Exception calling «GetUpdates» with «0» argument(s): «The operation has timed out»
At C:\Users\andeadm\Desktop\Delete_nonMS_Updates_inWSUS.ps1:5 char:1
+ $wsus.GetUpdates() | Where {$_.UpdateSource -ne «MicrosoftUpdate»} | ForEach-Obj …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: ) [], MethodInvocationException
+ FullyQualifiedErrorId : WebException
Already tried to increase the IIS Connection Time-out from 180sec to very high limit with no result.
Can U please help to avoid the timeout of Getupdates() method during deletion?
Beside that, there are other operations to do after successful third-party updates deletion?
Many Thanks!
Andrea
-
Thread Starter
-
-
#4
I did ran into few errors while executing the script, not sure if this particular error was there or not. My point is I had to run script multiple times until complete non-MS updates got deleted.
Why don’t you add Select-Object -First 500 in script commands to select smaller chunks and try, if it really is an issue of having large number of non-MS updates.
-
-
#5
Good advice,
the problem is that here in my vision what it’s failing is the method GetUpdates(), so it seems that I cannot split data as you suggest (I hope yes), because the timeout occurs during the method execution (when loading updates data) and not during the cmdlet «ForEach-Object»…I report the script to be more clear:
[reflection.assembly]::LoadWithPartialName(«Microsoft.UpdateServices.Administration»)
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer();
$wsus.GetUpdates() | Where {$_.UpdateSource -ne «MicrosoftUpdate»} | ForEach-Object {$wsus.DeleteUpdate($_.Id.UpdateId.ToString()); Write-Host $_.Title removed }
-
-
#6
That code’s a little dated. What is it exactly you’re attempting to do? Delete all 3rd party updates on a WSUS?
-
-
#7
That code’s a little dated. What is it exactly you’re attempting to do? Delete all 3rd party updates on a WSUS?
Thx Sam,
yes that was my original target, because from what I’ve understood, it might be the solution to the «8024000F search failing» entries inside my Server logs during WSUS sync…in the meantime i was able to modify the GetUpdate method, so now the script is running to clean DB until a certain date…have you some other suggestions regarding the code and/or to manage this issue?
A.
-
-
#8
It looks like you’re running the code directly on the WSUS server so there’s no need to load the Microsoft.UpdateServices.Administration namespace; your first two lines can be condensed to simply:
$wsus = Get-WsusServer
There’s no need to but if you want to write all proper like you could use:
[Microsoft.UpdateServices.Administration.IUpdateServer] $anotherwsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer()
These both return the same IUpdateServer object of the local server as can be seen by running:
$wsus.GetType() and $anotherwsus.GetType() but most people don’t like to type all that (I do though, hah).
All this is blah blah anyway because it seems the issue is the GetUpdates method of the IUpdateServer interface. Recently I had to stand up a domain at the same time another colleague was standing up a new WSUS on another domain and we both had to clear out thousands of unwanted updates as is the case with a new WSUS.
In our cases we needed to decline not remove but we still had to get all the update objects from the server like you do. We used the Get-WsusUpdate cmdlet which did take a very long time to run but it completed (each of us had over 5000 updates on our servers). Get-WsusUpdate and .GetUpdate() may appear to be the same thing but considering they take different parameters:
I would say they are invoking separate code blocks. Additionally .GetUpdate()’s 3 years old and MS is saying that site’s not getting any more updates.
Soo… this is an extremely long way of saying, try using the newer cmdlet like this (will write condensed):
$wsus = Get-WsusServer
$thirdPartys = Get-WsusUpdate | Where-Object { $_.Update.UpdateSource -NE ‘MicrosoftUpdate’ }
ForEach ($update In $thirdPartys) { $wsus.DeleteUpdate($update.Update.Id.UpdateId) }
If that runs with no errors you’ll need to run a 2nd pass on the declined updates. Despite the documentation stating that Get-WsusUpdate’s Approval parameter has no default value, if you don’t pass one it defaults to AnyExceptDeclined.
So…
$declinedThirdPartys = Get-WsusUpdate -Approval Declined | Where-Object { $_.Update.UpdateSource -NE ‘MicrosoftUpdate’ }
ForEach ($update In $declinedThirdPartys) { $wsus.DeleteUpdate($update.Update.Id.UpdateId) }
My experience with Get-WsusUpdate shows different behavior than what you and others describe about .GetUpdates() in that the cmdlet will only get what’s being asked and that method is getting everything using an older codeblock prone to some defined timeout.
Can’t actually test here at home because I don’t want to delete updates on my WSUS. Lemme know…
-
-
#9
Oookk,
many thanks Sam, I tried but honestly the command «$thirdPartys = Get-WsusUpdate | Where-Object { $_.Update.UpdateSource -NE ‘MicrosoftUpdate’ } » after 2 hours was still doing…nothing…(maybe there’s a long time to wait?)
So I decided to modify my initial scope object including the ApprovedStates property , since we had already declined all non-Microsoft updates…and now it’s running
Hope this could be enough to solve the issue but if you have any other suggestion will be appreciated.
A.
-
-
#10
after 2 hours was still doing…nothing…(maybe there’s a long time to wait?)
Yes; depending on the age and wear/tear on that WSUS is can take hours as in over 3.
My life-learned lesson with WSUS is to not let it age too much. Deploy it in a way that you can destroy a WSUS and stand a new one back in its place in 3 hours total (with 98% of that time being the darn wsusutil import command). Splitting the DB off to an external SQL, keeping OS/service config in the hands of GPOs, etc…
WSUS retains a lot of
garbage
information even after you’ve delinced updates, ran the cleanup util, and performed SQL maintenance. The best medicine for an ailing WSUS is to rebuild it.
Last edited:
-
-
#11
WSUS retains a lot of
garbageinformation even after you’ve delinced updates, ran the cleanup util, and performed SQL maintenance. The best medicine for an ailing WSUS is to rebuild it.
And finally it works!
Yeah you’re right Sam, it’s a mess!
Thank You guys, all of You…I promise from now on to maintain the WSUS environment as much as I can…
Andy
Issue
The SCCM software update scan failed on Configuration Manager client. When you look into Software Update Troubleshooting report ( Troubleshooting 1 – Scan errors ), it shows that scan was failed with Unknown Error -2147467259 (Hex Erro code – 80004005).
Error in SCCM client log WUAHandler.log
The following erros are logged in WUAHander.log file on client logs files located at C:\Windows\ccm\logs folder.
Its a WSUS Update Source type ({D7249651-3163-5AE0-8FCD-C1A8302838A8}), adding it. WUAHandler 5/15/2023 7:35:54 PM 5576 (0x15C8)
Failed to check enrollment url, 0x00000001: WUAHandler 5/15/2023 7:35:54 PM 5572 (0x15C4)
SourceManager::GetIsWUfBEnabled - There is no Windows Update for Business settings assignment. Windows Update for Business is not enabled through ConfigMgr WUAHandler 5/15/2023 7:35:54 PM 5572 (0x15C4)
Unable to read existing WUA Group Policy object. Error = 0x80004005. WUAHandler 5/15/2023 7:35:54 PM 5576 (0x15C8)
Enabling WUA Managed server policy to use server: http://SRV1.Techuisitive.local:8530 WUAHandler 5/15/2023 7:35:54 PM 5576 (0x15C8)
Failed to check enrollment url, 0x00000001: WUAHandler 5/15/2023 7:35:54 PM 7336 (0x1CA8)
SourceManager::GetIsWUfBEnabled - There is no Windows Update for Business settings assignment. Windows Update for Business is not enabled through ConfigMgr WUAHandler 5/15/2023 7:35:54 PM 7336 (0x1CA8)
Failed to Add Update Source for WUAgent of type (2) and id ({D7249651-3163-5AE0-8FCD-C1A8302838A8}). Error = 0x80004005. WUAHandler 5/15/2023 7:35:54 PM 5576 (0x15C8)
CWuaHandler::SetCategoriesForStateReportingExclusion called with E0789628-CE08-4437-BE74-2495B842F43B;E0789628-CE08-4437-BE74-2495B842F43B,A38C835C-2950-4E87-86CC-6911A52C34A3; for leaves and E0789628-CE08-4437-BE74-2495B842F43B,A38C835C-2950-4E87-86CC-6911A52C34A3; for bundles WUAHandler 5/16/2023 4:49:22 AM 1548 (0x060C)
ScanAgent.log
The same error is also logged in ScanAgent.log file on client computer.
CScanJob::Execute- Failed at AddUpdateSource, Error = 0x80004005 ScanAgent 5/15/2023 7:35:54 PM 5576 (0x15C8)
ScanJob({E01213CF-7FCD-49AF-A546-40C246C569AC}): CScanJob::OnScanComplete -Scan Failed with Error=0x80004005 ScanAgent 5/15/2023 7:35:54 PM 5576 (0x15C8)
ScanJob({E01213CF-7FCD-49AF-A546-40C246C569AC}): CScanJobManager::OnScanComplete- failed at CScanJob::OnScanComplete with error=0x80004005 ScanAgent 5/15/2023 7:35:54 PM 5576 (0x15C8)
Cause
This issue may happen due to corrupt group policy. It’s really difficult to say why this happens. In my environment , the Group policy update was failing on all these machines. These computers have been migrated from different domain and inherited many issues.
Solution
The solution is to delete the Registry.pol file and force Group policy update. This will also fix any other issue caused by Group policy update issue. A new Registry.pol file will automatically created after Group Policy Update. However, we still recommend to rename the file rather than deleting it.
You can follow the below steps to perform the actions on a remote machine through PowerShell remote session.
Step 1: Launch PowerShell on your computer and connect with PowerShell Remote Session
Enter-PsSession -ComputerName ComputerName
Step 2: Rename C:\Windows\System32\GroupPolicy\Machine\Registry.pol file to Registry.pol.old
cd C:\Windows\System32\GroupPolicy\Machine
REN Registry.pol registry.pol.old
Step 3: Run GPUpdate
GPUPDATE /FORCE
Step 4: Restart SMS Agent Host Service
Restart-Service ccmexec -verbose
Step 5: Force Software Update Scan Cycle
Force Software update scan cycle on client. You can find the details of all client actions and respective command line here.
Invoke-WmiMethod -Namespace root\ccm -Class sms_client -Name TriggerSchedule “{00000000-0000-0000-0000-000000000113}”
Related Posts
- SCCM Application Deployment Failed with Error 0x87d01106 | ConfigMgr
- SCCM Client Installation Failed With Error Code 0x87d00215
- PXE-E99: Unexpected network error – SCCM OSD
- Configuration Manager OSD task sequence fails with error code 0x80004005
- MECM OSD Task Sequence Failed with Error 0x80072EE7
- SCCM Client Push Installation Failed with Error 0x800706ba
- Failed to Add Update Source for WUAgent of type (2) and id ({ID). Error = 0x80004005
- SCCM OSD – Domain Join Failed with Error code 0x54b on HP Elitebook 840 G8
- ccmsetup failed with error code 0x87d00227
- Fix Application Deployment error 0x87d00213 in ConfigMgr
- CMG Connection Point Status Disconnected | SCCM | ConfigMgr
- CMG Setup – Subscription ID drop down not populating
- CMG Setup – Error when granting Contributor permission to the Azure AD app
- Failed to connect with DP – Error Code 0x8004100e | ConfigMgr | SCCM
- SCCM Client Installation Failed with error 0x87d0027e
- ConfigMgr OSD – PXE Troubleshooting
- SCCM WSUS sync error – Sync Failed – WSUS server not configured
- SCCM Software Distribution Troubleshooting
Subscribe to Techuisitive Newsletter
Be the first to know about our new blog posts. Get our newsletters directly in your inbox and stay up to date about Modern Desktop Management technologies & news.
Provide feedback
Saved searches
Use saved searches to filter your results more quickly
Sign up
