После установки нового сервера WSUS в сети нашей компании многие клиенты не смогли получить новые обновления с сервера с ошибкой 0x80244010. Как оказалось, эта ошибка характерна не только для компьютеров, обновляющихся с внутреннего сервера WSUS, но и для устройств, получающих обновления напрямую с Windows Update. Рассмотрим, основные способы исправления ошибки 0x80244010 и восстановления работоспособности системы обновлений.
Если вы увидели ошибку получения или установки обнволения в графической Control Panel или панели Settings, нужно открыть лог агента WindowsUpdate.log. В старых версиях Windows 7 и 8 это файл
%Windir%\WindowsUpdate.log
. В современных Windows 10/11 и Windows Server 2022/2019 вы можете сгенерировать файл WindowsUpdate.log с помощью PowerShell:
Get-WindowsUpdateLog -logpath C:\PS\Logs\WindowsUpdate.log
В моем случае в журнале обновлений обнаружились такие ошибки:
PT WARNING: Exceeded max server round trips: 0x80244010 PT WARNING: Sync of Updates: 0x80244010 PT WARNING: SyncServerUpdatesInternal failed: 0x80244010 Agent * WARNING: Failed to synchronize, error = 0x80244010 Agent * WARNING: Exit code = 0x80244010 Agent ********* Agent ** END ** Agent: Finding updates [CallerId = AutomaticUpdates] Agent ************* Agent WARNING: WU client failed Searching for update with error 0x80244010 AU >>## RESUMED ## AU: Search for updates [CallId = {128CCEAD-F84D-405E-9BC2-607D1694894B}] AU # WARNING: Search callback failed, result = 0x80244010 AU # WARNING: Failed to find updates with error code 80244010
Обратите внимание на строку Exceeded max server round trips: 0x80244010. Эта ошибка говорит, что при обращении к серверу обновлений (в моем случае это WSUS) было превышено максимальное количество обращений. В результате чего сервер обновлений отключает клиента, который превысил лимит обращений (по умолчанию лимит — 200 обращений).
Также в Windows Update есть ограничение в 200 Кб на максимальный размер XML файла, который клиент получает с сервера в рамках одного обращения. Чем большее количество обновлений на сервере для клиента нужно проверить, тем больший размер XML файла. Если клиент не смог получить необходимые данные с сервера обновлений за 200 сессий, он временно отключается от сервера и возвращает ошибку.
Чаще всего такая ошибка возникает из-за плохого или нестабильного сетевого соединения с сервером обновлений, или когда клиенту нужно получить слишком большое количество обновлений (новый клиент сервера WSUS или компьютер, на котором давно не устанавливались обновлений).
В большинстве случаев пользователю достаточно через несколько минут повторно нажать на кнопку Retry/ Check for Updates в панели управления или выполнить команду:
wuauclt.exe / detectnow
В большинстве случаев это решает проблему, но в том случае если клиентов в сети много, такой способ решения проблемы неприемлем.
По умолчанию клиент проверяет обновления на сервере каждые 22 часа. Вы можете изменить этот интервал с помощью параметров групповых политик компьютера. Откройте редактор локальной GPO (
gpedit.msc
) или отредактируйте доменные политику в консоли Group Policy Management Console (
gpmc.msc
). Перейдите в раздел Computer Configuration -> Administrative Templates -> Windows Components -> Windows Update.
Включите параметр Automatic Update detection frequency и увеличьте частоту синхронизаций клиента с сервером обновлений до 3 часов.
Также можно на стороне сервера WSUS убрать ограничение на максимальный размер XML файла, который может скачать клиент с сервера. Для этого откройте SQL Server Management Studio и подключитесь к базе данных SUSDB. Выполните выполнить следующую команду T-SQL.
USE SUSDB
GO
Проверьте и запомните текущее значение:
select MaxXMLPerRequest from tbConfigurationC
Отключите ограничение:
UPDATE tbConfigurationC SET MaxXMLPerRequest = 0
Чтобы не менять настройки в базе WSUS, можно выполнить очистку WSUS сервера с помощью встроенного мастера очистки (Консоль Update Service -> Options -> Server Cleanup Wizard -> все опции -> Next). Это удалит старые, неиспользуемые, и замененные обновления (особенно много мусора от обновлений MS Office), из-за которых может долго выполняться сканирование.
В результате такой операции, клиент Windows Update будет получать намного меньше мета-информации с WSUS сервера, и его взаимодействие должно уместиться в 200 сессий по 200кб.
Также попробуйте увеличить производительность пула WsusPool в IIS на сервере WSUS по рекомендация из стати Ошибка обновления Windows 80244022
WsusPool (Application Pools -> WsusPool -> Advanced settings):
- Private Memory Limit (KB) – 0 (убрать лимит 1.2 на использование RAM рабочим процессов WSUS)
- Queue Length — 25000 (увеличить длину очереди к пулу приложения с 10000)
- Limit Interval (minutes) — 15 (увеличить минут время для сброса счетчиков и выполнения CPU Throttling с 5 минут до 15)
- Service Unavailable Response — TcpLevel (при старом значение HttpLevel клиенту возвращается ошибка HTTP 503)
Отредактируйте файл config ( C:\Program Files\Update Services\WebServices\ClientWebService\web.config), заменив строку
httpRuntime maxRequestLength="4096"
на
httpRuntime maxRequestLength="204800" executionTimeout="7200"
Если все рассмотренные способы не помогли исправить ошибку обновления на клиенте, попробуйте полностью сбросить на нем настройки Windows Update и восстановить настройки по-умолчанию. После чего выполните несколько циклов поиска обновлений.
- Remove From My Forums
-
Question
-
-
Edited by
Friday, October 11, 2019 7:25 AM
-
Edited by
Answers
-
Hi Birdal,
As the article you provided says:
- We have defined the maximum number of trips as 200 within code and it cannot reconfigured.
So, if you click «Update Now» and the error «0x80244010» appears at the end, then the automatic update is normal, and only the update information is completely obtained by this update. Then continue to click «Update Now». As
for how many times you need to click to update immediately, it depends on how many patches you need to install for the installed operating system.
Regards,
Yic
Please remember to mark as answers if they help.
If you have feedback for TechNet Subscriber Support, contact
tnmff@microsoft.com.-
Marked as answer by
_Birdal
Friday, October 11, 2019 1:10 PM
- We have defined the maximum number of trips as 200 within code and it cannot reconfigured.
- Remove From My Forums
-
Question
-
-
Edited by
Friday, October 11, 2019 7:25 AM
-
Edited by
Answers
-
Hi Birdal,
As the article you provided says:
- We have defined the maximum number of trips as 200 within code and it cannot reconfigured.
So, if you click «Update Now» and the error «0x80244010» appears at the end, then the automatic update is normal, and only the update information is completely obtained by this update. Then continue to click «Update Now». As
for how many times you need to click to update immediately, it depends on how many patches you need to install for the installed operating system.
Regards,
Yic
Please remember to mark as answers if they help.
If you have feedback for TechNet Subscriber Support, contact
tnmff@microsoft.com.-
Marked as answer by
_Birdal
Friday, October 11, 2019 1:10 PM
- We have defined the maximum number of trips as 200 within code and it cannot reconfigured.
Skip to content
This error is mostly raised when a Windows client hasn’t been updated for a long time or when the software distribution store is cleaned and need to build up again. The default round trip value is capped to a maximum of 200KB per client each request, while the metadata XML file can grow to a larger file.
There are 2 possible solutions for this problem.
- The good old reboot. Just reboot, retry a couple of times and everything magically starting to work.
- Remove the maximum XML file size limit. This is one is more difficult, but way more efficient because you don’t have to troubleshoot each failing client. Will discuss this one below.
How to run queries against the WSUS Database?
The first thing, you need to know which database type is running for your WSUS instance. It can be the (default) Windows WID Database or SQL (express). To find out which database, navigate to the following registry key or run this PowerShell script on your WSUS server:
(Get-ItemProperty -Path «HKLM:\SOFTWARE\Microsoft\Update Services\Server\Setup» -name «SqlServerName»).sqlservername |
The manual method, navigate to: HKLM:\SOFTWARE\Microsoft\Update Services\Server\Setup
Query the WSUS WID Database
PowerShell Script Example to change the MaxXMLPerRequest value.
$ConnectionString = ‘server=\\.\pipe\MICROSOFT##WID\tsql\query;database=SUSDB;trusted_connection=true;’ $SQLConnection= New-Object System.Data.SQLClient.SQLConnection($ConnectionString) $SQLConnection.Open() $SQLCommand = $SQLConnection.CreateCommand() $SQLCommand.CommandText = ‘UPDATE tbConfigurationC SET MaxXMLPerRequest = 0’ $SqlDataReader = $SQLCommand.ExecuteReader() $SQLConnection.Close() |
Query the WSUS SQL Express Database
PowerShell Script Example to change the MaxXMLPerRequest value.
$DBType = ‘localhost\sqlexpress’ Invoke-Sqlcmd -Query «UPDATE tbConfigurationC SET MaxXMLPerRequest = 0» -ServerInstance $DBType -Database «SUSDB» $SQLDataResult = Invoke-Sqlcmd -Query «SELECT MaxXMLPerRequest FROM tbConfigurationC» -ServerInstance $DBType -Database «SUSDB» |
The final script
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
$DBType = (Get-ItemProperty -Path «HKLM:\SOFTWARE\Microsoft\Update Services\Server\Setup» -name «SqlServerName»).sqlservername If($DBType -match «WID»){ $ConnectionString = ‘server=\\.\pipe\MICROSOFT##WID\tsql\query;database=SUSDB;trusted_connection=true;’ $SQLConnection= New-Object System.Data.SQLClient.SQLConnection($ConnectionString) $SQLConnection.Open() $SQLCommand = $SQLConnection.CreateCommand() $SQLCommand.CommandText = ‘UPDATE tbConfigurationC SET MaxXMLPerRequest = 0’ $SqlDataReader = $SQLCommand.ExecuteReader() $SQLConnection.Close() $SQLConnection.Open() $SQLCommand = $SQLConnection.CreateCommand() $SQLCommand.CommandText = ‘SELECT MaxXMLPerRequest FROM tbConfigurationC’ $SqlDataReader2 = $SQLCommand.ExecuteReader() $SQLDataResult = New-Object System.Data.DataTable $SQLDataResult.Load($SqlDataReader2) $SQLConnection.Close() IF($SQLDataResult.maxxmlperrequest -eq 0){ Write-host «Succesfully changed the XML Maximum value» } Else { write-host «Something went wrong.. cannot change the DB Value» } } ElseIf($DBType -match «SQL»){ Invoke-Sqlcmd -Query «UPDATE tbConfigurationC SET MaxXMLPerRequest = 0» -ServerInstance $DBType -Database «SUSDB» $SQLDataResult = Invoke-Sqlcmd -Query «SELECT MaxXMLPerRequest FROM tbConfigurationC» -ServerInstance $DBType -Database «SUSDB» IF($SQLDataResult.maxxmlperrequest -eq 0){ Write-host «Succesfully changed the XML Maximum value» } Else { write-host «Something went wrong.. cannot change the DB Value» } } |
Обновлено 28.01.2020
Добрый день! Уважаемые читатели и гости одного из популярнейших IT блогов рунета Pyatilistnik.org. В прошлый раз мы с вами успешно устранили ошибку «Запуск этого устройства невозможен код 10». Двигаемся дальше, сегодня я столкнулся с ошибками 80244010 и C80003FB при попытке поиска обновлений Windows Server 2012 R2, в момент сервисного обслуживания терминального сервера. Ниже я покажу, как вы легко сможете их устранить, буквально за несколько минут.
Причины ошибок 80244010 и C80003FB
Прежде чем я покажу, как вы можете устранить ошибки 80244010 и C80003FB я бы хотел дать вам понимание их появления. Вот так вот выглядит ошибка с кодом C80003FB:
Возникла проблема при проверке наличия обновлений. Найдены ошибки: код C80003FB
Далее появилась ошибка:
Центру обновления Windows нужна ваша помощь. Центр обновления Windows не мог проверить наличие обновлений в течении последних 30 дней. Перейдите в Центр обновления Windows для устранения этой проблемы
В итоге я видел все ту же ошибку.
Основными причинами вызывающими данную ошибку выступает:
- Поврежден файл DataStore.edb
- Повреждены системные файлы
- Установка свежего агента для обновления Windows
- Не доступны сервера обновлений Microsoft
Как устранить ошибки 80244010 и C80003FB
Первое, что нужно проверить, это нет ли проблем с файлом DataStore.edb. DataStore.edb — это лог-файл, он сохраняет историю обновлений Windows , и она находится в папке SoftwareDistribution (C:\Windows\SoftwareDistribution\DataStore \DataStore.edb). Его размер будет увеличиваться при каждой проверке Центра обновления Windows.
Можно ли удалить файл DataStore.edb?
Да вы легко можете, это сделать. Удалив DataStore.edb Windows при следующем запуске поиска обновлений просто пересоздаст его. Так же этот файл может весить очень много, например более 1 ГБ и вы легко так сможете освободить в системе некоторое количество дискового пространства
Советую прочитать, как очистить папку Windows процентов на 40% и не сломать систему
Когда я вижу проблему с обновлениями, она в 90% случаев решается моим скриптом, который я приведу чуть ниже и дам его описание:
- Производится отключение службы «Фоновая интеллектуальная служба передачи (BITS)»
- Производится отключение службы «Центр обновления Windows»
- Производится отключение службы «Удостоверение приложения»
- Производится отключение службы «Службы криптографии»
- Далее удаляется файлы qmgr*.dat из профиля пользователя
- Происходит переименовывание файла catroot2 в catroot2.bak
- Происходит переименовывание папки SoftwareDistribution в SoftwareDistribution.bak
- Перерегистрируются библиотеки
- Производится запуск службы «Фоновая интеллектуальная служба передачи (BITS)»
- Производится запуск службы «Центр обновления Windows»
- Производится запуск службы «Удостоверение приложения»
- Производится запуск службы «Службы криптографии»
- Запускается обновление Windows
net stop bits
net stop wuauserv
net stop appidsvc
net stop cryptsvc
Del «%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat»
Ren %systemroot%\SoftwareDistribution SoftwareDistribution.bak
Ren %systemroot%\system32\catroot2 catroot2.bak
sc.exe sdset bits D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)
sc.exe sdset wuauserv D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)
cd /d %windir%\system32
regsvr32.exe atl.dll /s
regsvr32.exe urlmon.dll /s
regsvr32.exe mshtml.dll /s
regsvr32.exe shdocvw.dll /s
regsvr32.exe browseui.dll /s
regsvr32.exe jscript.dll /s
regsvr32.exe vbscript.dll /s
regsvr32.exe scrrun.dll /s
regsvr32.exe msxml.dll /s
regsvr32.exe msxml3.dll /s
regsvr32.exe msxml6.dll /s
regsvr32.exe actxprxy.dll /s
regsvr32.exe softpub.dll /s
regsvr32.exe wintrust.dll /s
regsvr32.exe dssenh.dll /s
regsvr32.exe rsaenh.dll /s
regsvr32.exe gpkcsp.dll /s
regsvr32.exe sccbase.dll /s
regsvr32.exe slbcsp.dll /s
regsvr32.exe cryptdlg.dll /s
regsvr32.exe oleaut32.dll /s
regsvr32.exe ole32.dll /s
regsvr32.exe shell32.dll /s
regsvr32.exe initpki.dll /s
regsvr32.exe wuapi.dll /s
regsvr32.exe wuaueng.dll /s
regsvr32.exe wuaueng1.dll /s
regsvr32.exe wucltui.dll /s
regsvr32.exe wups.dll /s
regsvr32.exe wups2.dll /s
regsvr32.exe wuweb.dll /s
regsvr32.exe qmgr.dll /s
regsvr32.exe qmgrprxy.dll /s
regsvr32.exe wucltux.dll /s
regsvr32.exe muweb.dll /s
regsvr32.exe wuwebv.dll /s
netsh winsock reset
netsh winhttp reset proxy
net start bits
net start wuauserv
net start appidsvc
net start cryptsvc
wuauclt /Updatenow
Вы можете либо отдельно запускать команды, или же скачать готовый скрипт у меня и так же запустить его в командной строке от имени администратора или просто запустить его в режиме администратора.
Просмотрите, чтобы не было ошибок в выводе скрипта
Далее я вам советую перезагрузить компьютер, иначе вы можете поймать ошибку 80244010.
Хочу отметить, что у вас в системе останется старая версия папки SoftwareDistribution по пути C:\Windows\SoftwareDistribution.bak. Так, что если проблема будет устранена, не забывайте ее удалить.
Теперь зайдя в «Центр обновления Windows» я сделал поиск новых обновлений и получил их, аж 29 штук. Ошибок 80244010 и C80003FB больше не наблюдал.
Скачивание доступных обновлений пошло успешно и они спокойно стали устанавливаться в моей Windows Server 2012 R2.
Устраняем ошибки на системных файлах
Если у вас после манипуляций с папкой SoftwareDistribution и файлом DataStore.edb остаются проблемы с поиском обновлений Windows и вы получаете ошибку C80003FB, вы можете попробовать произвести поиск и устранение ошибок на системных файлах Windows. Для этого есть две замечательные утилиты командной строки sfc и DISM. Выполните в командной строке в режиме администратора вот такую команду:
sfc /scannow && Dism /online /cleanup-image /restorehealth && Dism.exe /Online /Cleanup-Image /StartComponentCleanup
В моем примере программа защиты ресурсов Windows обнаружила повреждение файлов и успешно их восстановила. Пробуем снова найти и установить новые обновления.
Использование средства устранения неполадок Центра обновления Windows
Windows не идеальная система и Microsoft это понимает, они стараются признавать свои ошибки и помогать людям их устранять. В самые свежие версии клиентских ОС, я говорю про Windows 10 они внедрили встроенную утилиту по устранению неполадок для различных компонентов, в том числе и «Центр обновления Windows». В более старых версиях Windows 7 и Windows 8.1, а так же всех серверных Windows Server данный компонент загружается отдельно, по представленным чуть ниже ссылкам:
- Скачать средство устранения неполадок для Windows 7, Windows 8.1, Windows Server 2008R2-2012R2 — https://aka.ms/diag_wu
- Скачать средство устранения неполадок для Windows Server 2016-2019 — https://aka.ms/wudiag
Напоминаю, что встроенное средство устранения неполадок в Windows 10 находится в параметрах Windows, которые вы можете открыть через сочетание клавиш Win и I одновременно. Далее вы открываете пункт «Центр обновления Windows»
Находите пункт «Устранение неполадок — Центр обновления Windows».
Запустите ее.
В некоторый ситуациях вы можете получить ошибку:
В других версиях Windows запустите WindowsUpdate.diagcab. И в том и в другом случае у вас появится окно, единственное в версии для Windows 10 будет дополнительный пункт «Диагностика сетей Windows«.
Выбираем пункт «Центр обновления Windows» и нажимаем далее.
Начнется сканирование вашей системы, будет так же проверка реестра, перезапуск служб, вот так выглядит обнаружение и устранение проблем с файлами базы данных центра обновлений Windows.
Этот так же может может помочь в решении ошибок 80244010 и C80003FB.
Обновление и переустановка агента обновления Windows до последней версии
В Windows 7 и выше у вас может остаться ошибка 80244010, даже после всего того, что мы делали. Одной из экзотических причин может быть старая версия агента по обновлению Windows (Windows Update Agent). На момент января 2020 года самая актуальная версия WUA для Windows 7, это 7.6.7601.24436. Файл располагается по пути C:\Windows\System32\wuaueng.dll.
Если вам нужно его скачать для обновления или переустановки, вы можете перейти по ссылке:
https://support.microsoft.com/en-us/kb/949104
Находите пункты «Stand-alone packages for Windows 8 and Windows Server 2012» или «Stand-alone packages for Windows 7 SP1 and Windows Server 2008 R2 SP1» и загружаете нужную версию.
Далее вы можете произвести установку новой версии агента. Тут два варианта из графического интерфейса или через cmd/powershell. В режиме командной строки положите файл windowsupdateagent-7.6-x64.exe в нужное Вместо, обратите внимание, что у меня семерка 64-х битная, если у вас 32-х битная, то файл будет другой (Как проверить разрядность Windows смотрите по ссылке). Далее переходите в командной строке в расположение файла через команду cd и вводите:
WindowsUpdateAgent-7.6-x64.exe /quiet /norestart /wuforce
Если выскочит окно UAC, то нажмите да. Начнется принудительная переустановка агента по обновлению Windows.
Обратите внимание, что ваша KB будет распакована и появятся несколько временных папок.
В мониторе ресурсов будет видно, что идет обращение к папке SoftwareDistribution. Ждем когда система закончит туда писать, это около минуты.
Далее вы перезагружаете компьютер. Можно для надежности еще выполнить теперь команду для обращения к серверу обновления microsoft с синхронизацией.
wuauclt /resetauthorization /detectnow
Пробуем снова проверить доступность новых обновлений, и ошибка 80244010, должна исчезнуть. В графическом варианте будет простой мастер установки агента Windows Update, нажимаем далее.
Принимаем лицензионное соглашение.
И начинается установка агента.
Использование скрипта Reset Windows Update Agent
За, что я люблю популярные продукты, так это за большое комьюнити, кто не в курсе, это объединение людей по интересу к продукту. У Microsoft оно огромное, можете для примера посмотреть статистику по операционным системам за 2019 год. Есть замечательный пользователь Manuel F. Gil, который создал отличный скрипт под названием «Reset Windows Update Agent«. Данный скрипт поможет вам в решении проблем с обновлениями. Загрузите его по ссылке:
Распаковываете архив и утилитой SetupDiag.exe. Запустите от имени администратора файл ResetWUEng.cmd.
Вас попросят согласиться с тем, что вы даете согласие, что могут быть произведены изменения в реестре Windows или настройках системы, говорим Y.
В итоге вы увидите окно с 19 настройками, нас будет интересовать второй пункт «Reset the Windows Update Components«. Нажимаем двойку.
скрипт выключит нужные службы, произведет настройки и заново все включит.
Если все успешно, то он об этом отрапортует «The operatiom completed successfully»
На этом у меня все, надеюсь что вы смогли обновить свою Windows и избежали ошибок 80244010 и C80003FB. Если остались вопросы, то пишите их в комментариях. С вами был Иван Семин автор и создатель IT портала Pyatilistnik.org.