Wsus ошибка установки обновления

Время на прочтение
6 мин

Количество просмотров 256K

Windows 7 по-прежнему остается популярной операционной системой в корпоративной среде, несмотря на то, что уже вышли две новые версии клиентских ОС. Расширенная поддержка «семёрки» закончится лишь 14 января 2020 г., а это значит, что ближайшие 4 года для нее будут выходить обновления, исправляющие обнаруженные уязвимости.

Существует правило – если есть обновления, то есть и проблемы с их установкой. Давайте разберем, какие основные проблемы возникают при обновлении Windows 7 через Windows Server Update Services (WSUS) и как их исправить с наименьшими затратами.

Ошибка #1. Failed to find updates with error code 80244010

Эту ошибку вы практически гарантированно будете наблюдать на любой системе, впервые обратившейся к серверу WSUS. В WindowsUpdate.log также встретится предупреждение:
WARNING: Exceeded max server round trips

Причина проблемы в том, что список обновлений стал слишком большим, и клиент не может принять его за один заход. Подробности — blogs.technet.microsoft.com/sus/2008/09/18/wsus-clients-fail-with-warning-syncserverupdatesinternal-failed-0x80244010
Какое решение предлагает Microsoft? Если после ошибки запустить повторный поиск обновлений, то процесс загрузки метаданных продолжится с момента возникновения ошибки. Терпение господа, терпение. Три, пять попыток wuauclt /detectnow – и все образуется. Не забудьте при повторном поиске дождаться окончания предыдущего цикла поиска, иначе магия не сработает!

Ошибка #2. Не устанавливаются обновления Windows с ошибкой 0x80070308

Встречается эпизодически, и в одном случае из 100 у нее есть единственное и очень специфическое решение — удалить ключ
HKLM\Components\PendingRequired=1

Перезагрузиться. Здесь важно не переусердствовать, не следует удалять никакие другие ключи в этом разделе, даже если они вам очень не нравятся, потому что после этого обновления прекратят ставиться навсегда.

Ошибка #3. Все другие ошибки

Практически 100% других ошибок может решить System Update Readiness Tool (SURT) из статьи support.microsoft.com/en-us/kb/947821
Скачиваете пакет для вашей системы, устанавливаете, читаете лог %windir%\Logs\CBS\CheckSUR.log и если он заканчивается примерно так:

Summary:
Seconds executed: 1164
Found 16 errors
Fixed 4 errors

то вы наш клиент.

Проблема заключается в том, что во время установки обновлений в системе могут появиться битые файлы. Что является причиной — неисправная сеть, диск, оперативная память, сам Windows Update – выяснить не получится, а исправить ошибки для установки последующих обновлений придется.

Как правило, повреждаются *.cat, *.mum, *.manifest файлы. У кого-то повреждаются *.dll, но я на практике не сталкивался. И вроде бы средство SURT должно само исправить ошибки, поскольку внутри него есть огромный каталог эталонных файлов. Только в последний раз SURT обновлялся в октябре 2014 года, а исправлений на операционную систему с тех пор вышло бесчисленное множество, и многих файлов в каталоге не хватает.

Ниже я опишу последовательность действий, необходимых для исправления ошибок установки обновлений на Windows 7 x64 с использованием SURT. Для редакции x86 просто потребуется другой пакет SURT из KB947821.

Последовательность действий будет следующая.

1. Запустить первый проход Windows6.1-KB947821-v34-x64.msu

Пользователя от работы отвлекать не потребуется, все сделаем удаленно. Создаем следующий командный файл и запускаем его:

set machine=BUHWKS02
xcopy Windows6.1-KB947821-v34-x64.msu \\%machine%\admin$\temp
psexec -s \\%machine% wusa "c:\windows\temp\Windows6.1-KB947821-v34-x64.msu" /quiet /norestart
pause

где BUHWKS02 – целевая машина.
Когда скрипт отработает и встанет на паузу, проверяем %windir%\Logs\CBS\CheckSUR.log
Если ошибок не найдено – дело не в битых обновлениях.
Если он заканчивается

Summary:
Seconds executed: 1164
Found 16 errors
Fixed 4 errors

CSI Manifest All Zeros Total count: 6
CSI Catalog Corrupt Total count: 3
Fixed: CSI Catalog Corrupt. Total count: 3
CBS MUM Corrupt Total count: 3
CBS Catalog Corrupt Total count: 3
CSI Catalog Thumbprint Invalid Total count: 1
Fixed: CSI Catalog Thumbprint Invalid. Total count: 1
Unavailable repair files:
winsxs\manifests\wow64_microsoft-windows-gdi32_31bf3856ad364e35_6.1.7601.19091_none_c19fa2719495aca9.manifest
winsxs\manifests\amd64_microsoft-windows-capi2-weakcrypto_31bf3856ad364e35_6.1.7601.23290_none_5e936c9c5ce2e8e6.manifest
winsxs\manifests\wow64_microsoft-windows-gdi32_31bf3856ad364e35_6.1.7601.23290_none_c22840d8adb43043.manifest
winsxs\manifests\amd64_microsoft-windows-gdi32_31bf3856ad364e35_6.1.7601.19091_none_b74af81f6034eaae.manifest
winsxs\manifests\amd64_microsoft-windows-capi2-weakcrypto_31bf3856ad364e35_6.1.7601.19091_none_5e0ace3543c4654c.manifest
winsxs\manifests\amd64_microsoft-windows-gdi32_31bf3856ad364e35_6.1.7601.23290_none_b7d3968679536e48.manifest
servicing\packages\Package_2_for_KB3123479~31bf3856ad364e35~amd64~~6.1.1.0.mum
servicing\packages\Package_2_for_KB3123479~31bf3856ad364e35~amd64~~6.1.1.0.mum
servicing\packages\Package_for_KB3123479_SP1~31bf3856ad364e35~amd64~~6.1.1.0.mum

то будем исправлять.

2. Копируем эталонные файлы на целевую машину

Microsoft предлагает нам длинную, путанную процедуру с извлечением хороших файлов из обновлений и размещением их в определенные каталоги средства SURT. При этом пути в статьях неверные. Где-то и вовсе рекомендуют подкладывать оригинальные msu файлы.

Самый простой и правильный вариант следующий — скопировать эталонные файлы с рабочей системы:

*.mum and *.cat из C:\Windows\servicing\Packages складываются в %windir%\Temp\CheckSUR\servicing\packages
*.manifest из C:\Windows\winsxs\Manifests складываются в %windir%\Temp\CheckSUR\winsxs\manifests\

Проблема в том, что битых файлов обычно десятки, и их очень сложно выбрать и скопировать. Тогда на помощь приходит следующий скрипт PowerShell (эталонной считается машина, с которой вы запускаете скрипт)

cls
$flag = $false
$destPC = "\\BUHWKS02"
$log=get-content $($destPC + "\admin$\Logs\CBS\CheckSUR.log")
$MUMCATSource = "C:\Windows\servicing\Packages\"
$MUMCATDest = $destpc + "\admin$\Temp\CheckSUR\servicing\Packages\"
$MANIFESTSource = "C:\Windows\winsxs\Manifests\"
$MANIFESTDest = $destpc + "\admin$\Temp\CheckSUR\winsxs\Manifests\"
If ((Test-Path -Path $MUMCATDest -PathType Container) -eq $false) {New-Item -Path $MUMCATDest -ItemType directory }
If ((Test-Path -Path $MANIFESTDest -PathType Container) -eq $false) {New-Item -Path $MANIFESTDest -ItemType directory}
foreach ($line in $log) {  
    if ($flag -eq $True){
        if ($line.trim().Length -ne 0) {        
            $fileArray=$($line.Split("\"))
            $file = $FileArray[$FileArray.Length-1]
            $extArray = $file.split(".")
            $ext = $extArray[$extArray.length-1]
            if ($ext -eq "manifest") {
                Write-Warning $("Copying " + $($MANIFESTSource+$file)+" to " + $MANIFESTDest)
                Copy-Item $($MANIFESTSource+$file) $($MANIFESTDest+$file)
            }
            if (($ext -eq "mum") -or ($ext -eq "cat") ) {
                Write-Warning $("Copying " + $($MUMCATSource+$file)+" to " + $MUMCATDest)
                Copy-Item $($MUMCATSource+$file) $($MUMCATDest+$file)
            }
        }
    }
    if ($line -eq "Unavailable repair files:") {$flag = $true}    
} 

Как видите, скрипт прост и может быть легко заточен напильником под вашу инфраструктуру.

3. Запускаем второй проход Windows6.1-KB947821-v34-x64.msu

После копирования файлов мы повторно запускаем SURT, используя командный файл из первого шага. При повторном запуске средство сможет подхватить скопированные нами эталонные файлы из %windir%\Temp\CheckSUR и заменить ими испорченные.
Если мы сделали все правильно, то %windir%\Logs\CBS\CheckSUR.log примет следующий вид:

=================================
Checking System Update Readiness.
Binary Version 6.1.7601.22471
Package Version 26.0
2016-03-03 09:15
Checking Windows Servicing Packages
Checking Package Manifests and Catalogs
Checking Package Watchlist
Checking Component Watchlist
Checking Packages
Checking Component Store
Summary:
Seconds executed: 1435
No errors detected

Теперь можно продолжить установку обновлений на целевую машину, например, следующими командными файлами:
set machine= BUHWKS02
psexec -i -s \\%machine% wuauclt /detectnow
pause

set machine= BUHWKS02
psexec -i -s \\%machine% wuauclt /updatenow
pause

Ошибка #4. Если SURT отработал нормально, а обновления все равно не ставятся

Попробуйте прибегнуть к старому приему – сбросить службу Windows Update в исходное состояние. Для этого необходимо удалить каталог %windir%\SoftwareDistribution.

Создаем файл WU-cleanupCMD.cmd:
net stop wuauserv
rmdir /s /q %windir%\SoftwareDistribution
net start wuauserv
wuauclt /detectnow

Запускаем:
set machine= BUHWKS02
psexec -c -s \\%machine% WU-cleanupCMD.cmd
pause

После этого возникнет Ошибка #1, но как бороться с ней мы уже знаем.

Ошибка #5

Клиент исчезает из консоли WSUS. Любопытная ошибка, связанная с неправильным клонированием машин и задвоением (затроением и т.д.) идентификаторов клиентов. Решается так:

net stop wuauserv
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SusClientId /f
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SusClientIdValidation /f
net start wuauserv
wuauclt /resetauthorization /detectnow /reportnow
Ошибка #6

GetCookie failure, error = 0x8024400D, soap client error = 7, soap error code = 300, HTTP status code = 200
SyncUpdates failure, error = 0x80072EE2, soap client error = 5, soap error code = 0, HTTP status code = 200
Windows Update Client failed to detect with error 0x80072ee2

Ошибка связана с нехваткой ресурсов в AppPool WSUS. Решение — снять лимит на потребляемую память. Как это сделать — статья.
Коротко: Открываем IIS, Application Pools, WsusPool, Advanced Settings.
Параметр Private Memory Limit устанавливаем в 0.

Продолжение темы настройки WSUS — в моей следующей статье: https://habrahabr.ru/post/329440/

PS:
Многие ошибки решены в новом клиенте WSUS:
1. KB3125574 «Windows 7 post SP1 Convenience Rollup Update». Внимательно ознакомьтесь с разделом Known issues!

Предварительно необходимо установить KB3020369 «April 2015 servicing stack update for Windows 7 and Windows Server 2008 R2».

Удачного администрирования!

История такая. Около 3х лет стоял и нормально работал WSUS. Некоторое время назад перестал работать, ни консоль не запускалась, ни к базе не подключался, соответственно и клиенты не обновлялись, намертво вобщем, переустановка роли
WSUS не помогала. По этим и некоторым другим причинам было принято решение переустановить серверную ОС полностью, с новым именем (роли на нём некритичные), в политики изменения внесены с новым
именем wsus-сервера. 

Сервер: Windows server 2012 R2. Роли: Hyper-V, WSUS.

Заново установили WSUS со встроенной БД, настроили, заново даже скачали контент(т.е. синхронизация проходит нормально), постепенно появились клиенты, предоставили отчёты о состоянии. Затем клиенты пытались установить обновления, неудачно, о чём
и приходили отчёты на WSUS. Со стороны клиента: клиент ищет обновления на wsusе, находит, но при попытке скачивания происходят отказы с ошибкой 80244017.
Причём не скачиваются обновления ни на рабочих станциях, ни на серверах, ни на самом сервере с WSUSом.

WSUS Client Diagnostics Tool выдаёт следующее:

Checking Machine State
        Checking for admin rights to run tool . . . . . . . . . PASS
        Automatic Updates Service is running. . . . . . . . . . PASS
        Background Intelligent Transfer Service is running. . . PASS

GetFileVersion(szEngineDir,&susVersion) failed with hr=0x80070002

Автоматическое устранение неполадок на клиенте положительных результатов не далоСканирование системы командой DISM.exe /Online /Cleanup-image /Restorehealth
выполнено успешно (компоненты восстановлены)

Wuauclt.exe /resetauthorization /detectnow  пробовали.

Со стороны сервера в журналах такая ошибка:

Каталог содержимого WSUS недоступен.
System.Net.WebException: Удаленный сервер возвратил ошибку: (401) Несанкционированный.
   в System.Net.HttpWebRequest.GetResponse()
   в Microsoft.UpdateServices.Internal.HealthMonitoring.HmtWebServices.CheckContentDirWebAccess(EventLoggingType type, HealthEventLogger logger)

И такая:

Права доступа для каталога D:\WSUS установлены неправильно.

Windowsupdatelog даже за сегодня длинный: https://yadi.sk/i/DYoe-BuNs82Cq

Подскажите, куда копать?

  • Изменено

    30 мая 2016 г. 14:54

  • Изменен тип
    Vasilev VasilMicrosoft contingent staff
    2 июня 2016 г. 9:15
  • Изменен тип
    Dmitriy4722
    8 июня 2016 г. 10:20

При установке обновлений через через сервер обновлений WSUS иногда возникают ошибки установки 0×80070002 и 0×80070003.

Ошибка установки: не удается установить следующее обновление из-за ошибки 0x80070003

wsus error1 thumb WSUS: Ошибка установки: не удается установить следующее обновление из за ошибки 0x80070003

Эта проблема возникает, когда некоторые файлы отсутствует, хотя обновление загружено и извлечено успешно.

wsus error2 thumb WSUS: Ошибка установки: не удается установить следующее обновление из за ошибки 0x80070003

Решение:

1. Остановить службу Автоматические обновления Windows (Automatic Updates)

2. Переименовать папку C:\Windows\SoftwareDistribution в C:\Windows\SDTemp

3. Запустить службу Автоматические обновления Windows (Automatic Updates)

Тоже самое через cmd:

1. net stop wuauserv
2. cd c:\Windows
3. ren SoftwareDistribution SDTemp
4. net start wuauserv

После данной манипуляции компьютер заново закачает обновления и установит их.

После установки нового сервера WSUS в сети нашей компании многие клиенты не смогли получить новые обновления с сервера с ошибкой 0x80244010. Как оказалось, эта ошибка характерна не только для компьютеров, обновляющихся с внутреннего сервера WSUS, но и для устройств, получающих обновления напрямую с Windows Update. Рассмотрим, основные способы исправления ошибки 0x80244010 и восстановления работоспособности системы обновлений.

ошибка при получении обновления windows 80244010

Если вы увидели ошибку получения или установки обнволения в графической 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

Обратите внимание на строку Exceeded max server round trips: 0x80244010. Эта ошибка говорит, что при обращении к серверу обновлений (в моем случае это WSUS) было превышено максимальное количество обращений. В результате чего сервер обновлений отключает клиента, который превысил лимит обращений (по умолчанию лимит — 200 обращений).

Также в Windows Update есть ограничение в 200 Кб на максимальный размер XML файла, который клиент получает с сервера в рамках одного обращения. Чем большее количество обновлений на сервере для клиента нужно проверить, тем больший размер XML файла. Если клиент не смог получить необходимые данные с сервера обновлений за 200 сессий, он временно отключается от сервера и возвращает ошибку.

Чаще всего такая ошибка возникает из-за плохого или нестабильного сетевого соединения с сервером обновлений, или когда клиенту нужно получить слишком большое количество обновлений (новый клиент сервера WSUS или компьютер, на котором давно не устанавливались обновлений).

В большинстве случаев пользователю достаточно через несколько минут повторно нажать на кнопку Retry/ Check for Updates в панели управления или выполнить команду:

wuauclt.exe / detectnow

retry повторно проверить обновление

В большинстве случаев это решает проблему, но в том случае если клиентов в сети много, такой способ решения проблемы неприемлем.

По умолчанию клиент проверяет обновления на сервере каждые 22 часа. Вы можете изменить этот интервал с помощью параметров групповых политик компьютера. Откройте редактор локальной GPO (
gpedit.msc
) или отредактируйте доменные политику в консоли Group Policy Management Console (
gpmc.msc
). Перейдите в раздел Computer Configuration -> Administrative Templates -> Windows Components -> Windows Update.

Включите параметр Automatic Update detection frequency и увеличьте частоту синхронизаций клиента с сервером обновлений до 3 часов.

Automatic Update detection frequency - политика частоты выполнения сканирования на wsus

Также можно на стороне сервера 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кб.

wsus Server Cleanup Wizard - мастер очистки

Также попробуйте увеличить производительность пула 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 ResponseTcpLevel (при старом значение 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

  • Hi,

    Im approving the Windows 10 1511 upgrades on WSUS — Server 2012R2.

    Single WSUS server synching directly with MS and storing updates locally.

    The Windows 10 upgrades keep failing to download though so i cant actually deploy them to my Windows 10 group for upgrade from Win 7.

    I approve the update  «Upgrade to Windows 10 Pro, version 1511, 10586 — en-gb, Retail for my Windows 10 computer group.

    It starts downloading then about 5 minutes later will come up with:

    The files for this update failed to download.

    The update can be approved but will not be available to computers until the download is complete. Click retry download to start the download again.

    The following is logged in the event log:

    Content file download failed.

    Reason: File cert verification failure.

    Source File: /d/upgr/2015/12/10586.0.151029-1700.th2_release_clientpro_ret_x64fre_en-gb_4609bbb28b8638ba63df922e68ae75a77434df64.esd

    Destination File: S:\WSUS Content\WsusContent\64\4609BBB28B8638BA63DF922E68AE75A77434DF64.esd

    Ive tried rebooting the server and running the server clean up wizard but i cant clear the above error cycle.

    Anybody any ideas?

    Thanks

    • Edited by

      Monday, January 11, 2016 11:00 AM

Answers

  • Hi

    Windows 10 Pro Retail:

    Requested file 10586.0.151029-1700.th2_release_CLIENTPRO_RET_x64fre_en-us.esd has no decrypt information

    Windows 10 Pro Volume Licensed:

    Requested file 10586.0.151029-1700.th2_release_CLIENTEducation_VOL_x64fre_en-us.esd has no decrypt information

    This error occurs if you have applied the KB3095113 after ticking the Upgrades Classification on 2012 or 2012 r2 Server. When you tick the Upgrades Classification WSUS downloads metadata about the available Upgrades into the SUSDB WSUS Database. If the hotfix
    isn’t applied first this data is not stored correctly in the SUSDB Database and is unusable.

    To fix this you need to delete the information about the Upgrades from the SUSDB Database.

    See http://blogs.technet.com/b/wsus/archive/2015/12/04/important-update-for-wsus-4-0-kb-3095113.aspx?pi47623=7#pi47623=7#comments
    (Sorry I can’t make this a hyper-link as I have only just created this account).

    In the Comments Section there is a post «This Drove me Mad» 26 Jan 2016 4:28 PM which explains how to delete these unusable entries from your SUSDB Database. This information is provided without warranty and you should
    take all necessary precautions if following it.

    I have followed the instructions posted by «This Drove me Mad» and
    «FCW» from this Blog on my production WSUS 2012 Server and it fixed this problem for me.

    I have just successfully Upgraded a Windows 10 RTM 10240 PC to th2 1511 10586 via WSUS so this was the last problem I needed to solve to get it to work.

    • Proposed as answer by
      Kuba_L
      Wednesday, January 27, 2016 3:14 PM
    • Marked as answer by
      Fulgent
      Friday, February 5, 2016 1:07 PM

Понравилась статья? Поделить с друзьями:
  • Xbox 360 код ошибки 0001
  • Xbox 360 выдает ошибку диска
  • Xbox 360 все ошибки
  • Xbox 360 slim код ошибки 0100
  • Xbox 360 kinect ошибка