Исправляем ошибки установки обновлений Windows 7
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. Все другие ошибки
Проблема заключается в том, что во время установки обновлений в системе могут появиться битые файлы. Что является причиной — неисправная сеть, диск, оперативная память, сам Windows Update – выяснить не получится, а исправить ошибки для установки последующих обновлений придется.
Как правило, повреждаются *.cat, *.mum, *.manifest файлы. У кого-то повреждаются *.dll, но я на практике не сталкивался. И вроде бы средство SURT должно само исправить ошибки, поскольку внутри него есть огромный каталог эталонных файлов. Только в последний раз SURT обновлялся в октябре 2014 года, а исправлений на операционную систему с тех пор вышло бесчисленное множество, и многих файлов в каталоге не хватает.
Ниже я опишу последовательность действий, необходимых для исправления ошибок установки обновлений на Windows 7 x64 с использованием SURT. Для редакции x86 просто потребуется другой пакет SURT из KB947821.
Последовательность действий будет следующая.
1. Запустить первый проход Windows6.1-KB947821-v34-x64.msu
Пользователя от работы отвлекать не потребуется, все сделаем удаленно. Создаем следующий командный файл и запускаем его:
где BUHWKS02 – целевая машина.
Когда скрипт отработает и встанет на паузу, проверяем %windir%\Logs\CBS\CheckSUR. log
Если ошибок не найдено – дело не в битых обновлениях.
Если он заканчивается
то будем исправлять.
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 (эталонной считается машина, с которой вы запускаете скрипт)
Как видите, скрипт прост и может быть легко заточен напильником под вашу инфраструктуру.
3. Запускаем второй проход Windows6.1-KB947821-v34-x64.msu
Теперь можно продолжить установку обновлений на целевую машину, например, следующими командными файлами:
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. Любопытная ошибка, связанная с неправильным клонированием машин и задвоением (затроением и т. д.) идентификаторов клиентов. Решается так:
Ошибка #6
Ошибка связана с нехваткой ресурсов в 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».
Ошибка 0x80073701 при обновлении windows 10
При установке обновления Windows 10 может появиться ошибка 0x80073701, которая прерывает процесс и вынуждает пользователя искать способы решения проблемы. К этому может привести целый ряд причин и не так просто понять, какая из них мешает завершиться обновлению в вашем случае. Появление кода 80073701 зачастую связанно с файлами, которые были загружены во время предыдущих обновлений и повреждены. Но это не всегда так, проблема может быть более сложной. В статье вы найдете способы устранения ошибки 0x80073701.
Методы решения ошибки
Проверяем системные файлы
Есть целый ряд системных файлов, ответственных за функционирование обновления. Если их нет или они повреждены, то в Windows 10 всплывает код 0x80073701. Он связан с отсутствием доступа к ним. Если рядом присутствует надпись ERROR_SXS_ASSEMBLY_MISSING, то нужно проверить целостность всех файлов. Сделать это можно воспользовавшись инструментом DISM, который проверит Виндовс на готовность к обновлению. Он тестирует Windows на предмет наличия ошибок, в том числе 0x80073701.
Используя сочетание клавиш Win + S вы откроете консоль, где нужно напечатать cmd и запустить от имени администратора. В консоль вводятся два запроса:
- DISM /Online /Cleanup-Image /ScanHealth
- DISM /Online /Cleanup-Image /RestoreHealth
Для выполнения второго необходим доступ к глобальной сети, так как поврежденные файлы заменяются их копиями, хранящимися в Центре обновлений Windows 10. Дождавшись завершения процесса переходим к инструменту SFC. Он заменяет неисправные файлы из локального хранилища. Вводим запрос: sfc /scannow. Когда сканирование будет завершено, перезапускаем компьютер. Если ошибка 0x80073701 никуда не делась, то переходим к следующему пункту.
Удаление обновлений Windows
Убрать 0x80073701 поможет командная строка, включенная с особыми привилегиями. Включаем ее и печатаем запросы для отключения нужных нам служб. После останется стереть содержимое каталога SoftwareDistribution. Печатаем следующие запросы:
- net stop wuauserv
- net stop cryptSvc
- net stop bits
- net stop msiserver
Переходим к системному диску, где нас интересует каталог “SoftwareDistribution”. Вам предстоит удалить все его содержимое для избавления от ошибки 0x80073701. Меняем его название на любое другое и вводим следующие запросы:
- ren C:\Windows\SoftwareDistribution SoftwareDistribution. old
- ren C:\Windows\System32\newSD NewSD. old
NewSD – это наименование созданной вами папки. Теперь повторно запускаем выключенные ранее службы:
- net stop wuauserv
- net stop cryptSvc
- net stop bits
- net stop msiserver
Изменения вступят в силу после перезапуска ПК.
Избавляемся от лишних языковых пакетов
Этот совет был актуален еще во времена Windows 7, вероятно он поможет избавиться от кода 0x80073701. Вам нужно удалить языковые пакеты, в которых нет необходимости. За счет этого освободиться свободное пространство и вероятно исчезнет проблема 0x80073701. Для этого проследуйте нашей инструкции:
- Наводимся на меню Пуск и нажимаем правую кнопку мыши;
- Выбираем “Параметры”, после чего переходим в раздел “Время и язык”;
- Открываем вкладку “Регион и язык” и стираем все языки, которые вам не нужны;
- Остается закрыть окно и перезапустить ПК.
Если никакая из вышеописанных мер не помогла, то вы можете попробовать загрузить и установить обновление вручную.
https://habr. com/ru/post/278439/
https://fixbin. ru/oshibka-0x80073701-obnovlenii-windows-10/