Содержание
- Сброс центра обновления Windows 10
- Средство устранения неполадок
- Удаление папки SoftwareDistibution
- Выполнение скрипта
- Загрузить скрипт с форума Microsoft
- Создание скрипта самостоятельно
- Рекомендованные публикации
- Добавить комментарий Отменить ответ
- Сброс настроек службы обновлений Windows Update
- Средство устранения неполадок Центра обновления Windows
- Сброс настроек Windows Update из командной строки
- Скрипт Reset Windows Update Agent
Сброс центра обновления Windows 10
При возникновении ошибок при загрузке или установке обновлений чаще всего помогает сброс центра обновления Windows 10. В данной статье мы опишем стандартные методы, как сбросить Центр обновления и решить проблемы с обновлениями.
Существует несколько известных способов сбросить Центр обновления Windows 10:
- Используя средство устранения неполадок
- Удаление папки SoftwareDistibution
- Выполнение скрипта
Разберем данные способы по порядку.
Средство устранения неполадок
Помогает в 2 случаях из 10 и может указывать на ошибки хранилища компонентов и самого ЦО, без наличия таковых. Не самое лучше средство решение проблемы, но иногда помогает. Редко, но помогает. Учитывая заявление Microsoft, что все траблшутеры (а именно так называются эти средства устранения неполадок) совершенствуются и «учатся на ошибках», этого не было замечено за всё время использования системы.
Если Вам требуется запустить средство устранения неполадок Центра обновления Windows, пройдите в Панель управления — Устранение неполадок — Все категории и запустите нужное средство от имени Администратора.
Удаление папки SoftwareDistibution
Решает 5 из 10 проблем с обновлениями. SoftwareDistibution – папка, где хранятся загруженные обновления, кэш Центра обновления и его логи. Удаление данной папки решает вопросы ошибок установки, но не загрузки обновлений.
Папка располагается по пути C:WindowsSoftwareDistribution
Перед тем, как её удалить, необходимо остановить службу Центр обновления Windows или выполнить следующую команду в Командной строке от имени Администратора:
Выполнение скрипта
Универсальное средство для решения проблем обновлений, как для Windows 10, так и для Windows 8.1 и 7. Решает 8 из 10 проблем связанных с центром обновления. Есть 2 варианта использования скрипта:
Загрузить скрипт с форума Microsoft
Пройдите на страницу загрузки Technet Microsoft или загрузите архив по прямой ссылке. Распакуйте архив и запустите скрипт ResetWUEng от имени Администратора.
Первая страница предостерегает о возможных последствиях (скрипт умеет не только сбрасывать ЦО), для согласия нажмите клавишу «Y». На выбор будет предложено 17 действий, но нам нужно только одно, под цифрой 2. Нажимаем 2 и клавишу Enter. На экране будут отображаться выполняемые процессы и по завершению возникнет окно в 17 вариантами. Выберите 17 для перезагрузки и нажмите Enter.
Примечание: Некоторые антивирусы могут «ругаться» на данный скрипт, но открыв Блокнотом, Вы можете удостовериться, что ничего подозрительного в его содержимом нету.
Создание скрипта самостоятельно
Сделать скрипт для сброса Центра обновления Windows довольно просто, нам потребуется для начала открыть Блокнот (notepad.exe) и скопировать туда данный текст:
Затем, сохраните данный файл. При сохранении укажите Тип файла: Все файлы, а в названии укажите «название».bat (например, wu.bat), что бы этот файл был исполняемым и можно было воспроизвести скрипт.
После сохранения откройте файл от имени Администратора и дождитесь окончания процедуры, после чего перезагрузите компьютер.
Мы надеемся, что данная инструкция была Вам полезна и помогла решить вопрос Центра обновления Windows.
Рекомендованные публикации
Все пользователи сталкивались с тем, что загрузка или распаковка крупных обновлений занимает слишком много времени. Порой не дождавшись окончания, устройство…
13 февраля – вторник обновлений Windows 10. Все актуальные версии Windows 10 получили накопительные обновления, где были исправлены баги и…
В случае с обновлением операционной системы Windows 10 может возникать ошибка 0x80070013. Ошибка сопровождается описанием: «С установкой обновления возникли некоторые проблемы,…
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.
Сброс настроек службы обновлений Windows Update
В этой статье мы покажем, как исправить ошибки и восстановить работу службы обновления Windows с помощью сброса конфигурации агента и службы Windows Update. Как правило, это самый эффективный и простой способ решить проблему с работой службы обновлений Windows, если обновления не загружаются или происходят ошибки при установке обновлений.
Обычно для отладки и дебага ошибок службы обновления Windows администратору необходимо проанализировать коды ошибок в файле журнала обновлений %windir%WindowsUpdate.log (в Windows 10 получить файл WindowsUpdate.log можно таким способом). Количество возможных ошибок, с которыми может столкнуться администратор при анализе журнала обновлений исчисляется десятками (список всех ошибок Windows Update) и процесс их разрешения в основном нетривиальный. В некоторых случаях вместо детального анализа ошибок Windows Update гораздо быстрее и проще сначала произвести полный сброс настроек агента и службы Windows Update. После сброса Windows Update вы можете выполнить сканирование и поиск обновлений.
Средство устранения неполадок Центра обновления Windows
Прежде чем перейти к сбросу конфигурации центра обновления Windows настоятельно рекомендуем сначала попробовать более простое и эффективное средство для автоматического исправления проблем в службе обновления Windows – средство устранения неполадок Центра обновления Windows (Windows Update Troubleshooter).
Скачайте и запустите Windows Update Troubleshooter для вашей версии Windows:
- Windows10 – wu10.diagcab ( https://aka.ms/wudiag ) (либо запустите локальную версию инструмента: Пуск -> Параметры -> Обновления и безопасность -> Устранение неполадок -> Центр обновлений Windows (Start -> Settings -> Updates and Security -> Troubleshoot -> Windows Updates Troubleshooter);
- Windows 7и Windows 8.1 — WindowsUpdate.diagcab ( https://aka.ms/diag_wu ).
Дождитесь пока средство устранения неполадок Центра обновления Windows просканирует систему и попытается автоматически исправить все ошибки в службе Windows Update и связанных компонентах.
В моем случае была обнаружена и исправлена потенциальная ошибка в базе данных Центра обновления Windows. После этого осталось перезагрузить компьютер и попробовать выполнить поиск обновлений. Если обновления не загружаются или не устанавливаются, перейдите к следующему этапу.
Сброс настроек Windows Update из командной строки
Процесс сброса настроек агента и службы обновления Windows состоит из нескольких этапов. Все описанные операции выполняются в командной строке и собраны в один bat файл (готовый скрипт можно скачать по ссылке ниже).
С помощью данного скрипта можно полностью сбросить конфигурацию службы Центра обновлений Windows, и очистить локальный кэш обновлений. Скрипт является универсальный и будет работать как в Windows 7, Windows 8.1 и Windows 10, так и в Windows Server 2016/ 2012 R2/ 2008 R2. Скрипт помогает устранить большинство типовых ошибок в работе службы Windows Update, когда центр обновлений перестает загружать новые обновления или пишет, что при установке обновления возникают ошибки.
Итак, по порядку о том, что делает скрип:
- Остановка службы Windows Update (Центр обновлений Windows), BITS и службы криптографии:
net stop bits
net stop wuauserv
net stop appidsvc
net stop cryptsvc
taskkill /im wuauclt.exe /f - Удаление служебных файлов qmgr*.dat в каталоге %ALLUSERSPROFILE%Application DataMicrosoftNetworkDownloader:
Del «%ALLUSERSPROFILE%Application DataMicrosoftNetworkDownloaderqmgr*.dat» - Переименовываем служебные каталоги, в которых хранятся конфигурационные файлы и кэш обновлений (в случае необходимости их можно будет использовать как резервные копии). После перезапуска службы обновления, эти каталоги автоматически пересоздадутся:
Ren %systemroot%SoftwareDistribution SoftwareDistribution.bak
Ren %systemroot%system32catroot2 catroot2.bak - Удаление старого журнала windowsupdate.log
del /f /s /q %windir%windowsupdate.log - Сброс разрешений на службы BITS и Windows Update (в случае, если права на службы были изменены)
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)
sc.exe sdset cryptsvc D:(A;;CCLCSWLOCRRC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLCRSDRCWDWO;;;SO)(A;;CCLCSWRPWPDTLOCRRC;;;SY)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;WD)
sc.exe sdset trustedinstaller D:(A;;CCLCSWLOCRRC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLCRSDRCWDWO;;;SO)(A;;CCLCSWRPWPDTLOCRRC;;;SY)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;WD) - Перерегистрация файлов системных динамических библиотек (dll), связанных со службами BITS и Windows Update:
cd /d %windir%system32
regsvr32.exe /U /s vbscript.dll
regsvr32.exe /U /s mshtml.dll
regsvr32.exe /U /s msjava.dll
regsvr32.exe /U /s msxml.dll
regsvr32.exe /U /s actxprxy.dll
regsvr32.exe /U /s shdocvw.dll
regsvr32.exe /U /s Mssip32.dll
regsvr32.exe /U /s wintrust.dll
regsvr32.exe /U /s initpki.dll
regsvr32.exe /U /s dssenh.dll
regsvr32.exe /U /s rsaenh.dll
regsvr32.exe /U /s gpkcsp.dll
regsvr32.exe /U /s sccbase.dll
regsvr32.exe /U /s slbcsp.dll
regsvr32.exe /U /s cryptdlg.dll
regsvr32.exe /U /s Urlmon.dll
regsvr32.exe /U /s Oleaut32.dll
regsvr32.exe /U /s msxml2.dll
regsvr32.exe /U /s Browseui.dll
regsvr32.exe /U /s shell32.dll
regsvr32.exe /U /s atl.dll
regsvr32.exe /U /s jscript.dll
regsvr32.exe /U /s msxml3.dll
regsvr32.exe /U /s softpub.dll
regsvr32.exe /U /s wuapi.dll
regsvr32.exe /U /s wuaueng.dll
regsvr32.exe /U /s wuaueng1.dll
regsvr32.exe /U /s wucltui.dll
regsvr32.exe /U /s wups.dll
regsvr32.exe /U /s wups2.dll
regsvr32.exe /U /s wuweb.dll
regsvr32.exe /U /s scrrun.dll
regsvr32.exe /U /s msxml6.dll
regsvr32.exe /U /s ole32.dll
regsvr32.exe /U /s qmgr.dll
regsvr32.exe /U /s qmgrprxy.dll
regsvr32.exe /U /s wucltux.dll
regsvr32.exe /U /s muweb.dll
regsvr32.exe /U /s wuwebv.dllregsvr32.exe /s vbscript.dll
regsvr32.exe /s mshtml.dll
regsvr32.exe /s msjava.dll
regsvr32.exe /s msxml.dll
regsvr32.exe /s actxprxy.dll
regsvr32.exe /s shdocvw.dll
regsvr32.exe /s Mssip32.dll
regsvr32.exe /s wintrust.dll
regsvr32.exe /s initpki.dll
regsvr32.exe /s dssenh.dll
regsvr32.exe /s rsaenh.dll
regsvr32.exe /s gpkcsp.dll
regsvr32.exe /s sccbase.dll
regsvr32.exe /s slbcsp.dll
regsvr32.exe /s cryptdlg.dll
regsvr32.exe /s Urlmon.dll
regsvr32.exe /s Oleaut32.dll
regsvr32.exe /s msxml2.dll
regsvr32.exe /s Browseui.dll
regsvr32.exe /s shell32.dll
regsvr32.exe /s Mssip32.dll
regsvr32.exe /s atl.dll
regsvr32.exe /s jscript.dll
regsvr32.exe /s msxml3.dll
regsvr32.exe /s softpub.dll
regsvr32.exe /s wuapi.dll
regsvr32.exe /s wuaueng.dll
regsvr32.exe /s wuaueng1.dll
regsvr32.exe /s wucltui.dll
regsvr32.exe /s wups.dll
regsvr32.exe /s wups2.dll
regsvr32.exe /s wuweb.dll
regsvr32.exe /s scrrun.dll
regsvr32.exe /s msxml6.dll
regsvr32.exe /s ole32.dll
regsvr32.exe /s qmgr.dll
regsvr32.exe /s qmgrprxy.dll
regsvr32.exe /s wucltux.dll
regsvr32.exe /s muweb.dll
regsvr32.exe /s wuwebv.dll - Сброс параметров Winsock netsh winsock reset
- Сброс параметров системного прокси netsh winhttp reset proxy
- Опционально. При использовании локального сервера WSUS, возможно дополнительно сбросить текущую привязку клиента к серверу WSUS путем удаления следующих параметров в ветке HKLMSOFTWAREMicrosoftWindowsCurrentVersionWindowsUpdate:
REG DELETE «HKLMSOFTWAREMicrosoftWindowsCurrentVersionWindowsUpdate» /v AccountDomainSid /f
REG DELETE «HKLMSOFTWAREMicrosoftWindowsCurrentVersionWindowsUpdate» /v PingID /f
REG DELETE «HKLMSOFTWAREMicrosoftWindowsCurrentVersionWindowsUpdate» /v SusClientId /f
REG DELETE «HKLMSOFTWAREPoliciesMicrosoftWindowsWindowsUpdate» /v TargetGroup /f
REG DELETE «HKLMSOFTWAREPoliciesMicrosoftWindowsWindowsUpdate» /v WUServer /f
REG DELETE «HKLMSOFTWAREPoliciesMicrosoftWindowsWindowsUpdate» /v WUStatusServer /f - Запуск остановленных служб:
sc.exe config wuauserv start= auto
sc.exe config bits start= delayed-auto
sc.exe config cryptsvc start= auto
sc.exe config TrustedInstaller start= demand
sc.exe config DcomLaunch start= auto
net start bits
net start wuauserv
net start appidsvc
net start cryptsvc - Опционально. В некоторых случая требуется установить/переустановить последнюю версию агента Windows Update Agent (WUA). Скачать актуальную версию агента можно со страницы https://support.microsoft.com/en-us/kb/949104. Нужно скачать файл для вашей версии Windows.Актуальная версия агента WUA для Windows 7 SP1 x64 — 7.6. Принудительная переустановка агента WindowsUpdate выполняется следующими командами:
- для Windows 7 x86: WindowsUpdateAgent-7.6-x86.exe /quiet /norestart /wuforce
- для Windows 7 x64: WindowsUpdateAgent-7.6-x64.exe /quiet /norestart /wuforce
Осталось перезагрузить компьютер и запустить синхронизацию с сервером Windows Update /WSUS.
wuauclt /resetauthorization /detectnow
Затем зайдите в Центр обновления и проверьте, пропали ли проблемы при поиске, скачивании и установке обновлений.
Сам скрипт reset_win_update.bat можно скачать по ссылке reset_win_update.zip (пункты 9 и 11 в скрипте не выполняются, т.к. являются опциональными). Скрипт нужно скачать, распаковать и запустить с правами администратора.
После этого перезагрузите компьютер, затем зайдите в Центр обновлений и проверьте, пропали ли проблемы при поиске, скачивании и установке обновлений.
Если обновления начали корректно скачиваться и устанавливается, можно удалить папки резервные копии папок:
Ren %systemroot%SoftwareDistribution SoftwareDistribution.bak
Ren %systemroot%system32catroot2 catroot2.bak
Скрипт Reset Windows Update Agent
В галерее скриптов Technet есть довольно полезный и простой скрипт для сброса компонентов центра обновлений — Reset Windows Update Agent. Скрипт универсальный и подходит для всех версий Windows: начиная с Windows XP и заканчивая последними версиями Windows 10. Рассмотрим, как им пользоваться.
- Скачайте архив ResetWUEng.zip здесь (https://gallery.technet.microsoft.com/scriptcenter/Reset-Windows-Update-Agent-d824badc) и распакуйте его;
- Запустите файл ResetWUEng.cmd с правами администратора;
- Скрипт определит вашу версию ОС (в моем примере это Windows 10) и предложит 18 различных опций. Некоторые из них напрямую не относятся к сбросу настроек агента WU, но могут быть полезны для исправления различных неисправностей в Windows (проверка диска chkdsk, исправление ошибок в образе Windows, сброс Winsock, очистка временных файлов и т.д.);
- Для сброса настроек Windows Update как правило достаточно использовать опцию 2 —ResetstheWindowsUpdateComponents (Сбросить компоненты службы обновления Windows). Нажмите 2 и Enter;
- Скрипт автоматически выполнит все действия, которые мы описали выше при выполнении ручного сброса агента обновлений Windows из командной строки.
Если в компании активно используются шаблоны операционных систем Microsoft Windows, и, при этом, перед запаковыванием шаблона не был сброшен ClientID, то может получиться ситуация, при которой разные машины будут при ходить на WSUS с одинаковым ID, но при этом с разными набором требуемых обновлений. При этом, отображаться будет только одна из машин на WSUS, та что предоставила о себе отчет последней.
В ранних версиях Windows, идентификатор машины на WSUS не сбрасывался даже при SysPrep, на современных ОС, SysPrep должен сбрасывать этот параметр. Но бывают случаи, когда этого не происходит, либо автоматически генерируемый GUID совпал с имеющимся.
Чтобы исправить (сбросить Client Id) на всех проблемных машинах, которые попадают под подозрение, необходимо вручную удалить содержимое ветки реестра:HKLMSOFTWAREMicrosoftWindowsCurrentVersion
или выполнить скрипт в командной строке, запущенной от имени администратора
net stop wuauserv
reg Delete HKLMSOFTWAREMicrosoftWindowsCurrentVersionWindowsUpdate /v PingID /f
reg Delete HKLMSOFTWAREMicrosoftWindowsCurrentVersionWindowsUpdate /v AccountDomainSid /f
reg Delete HKLMSOFTWAREMicrosoftWindowsCurrentVersionWindowsUpdate /v SusClientId /f
reg Delete HKLMSOFTWAREMicrosoftWindowsCurrentVersionWindowsUpdate /v SusClientIDValidation /f
net start wuauserv
wuauclt.exe /resetauthorization /detectnow
pause
После выполнения данной операции машина зарегистрируется на WSUS с новым уникальным Id.
PS Обычно, при возникновении каких-либо проблем со службой обновлений Windows, одной из профилактических мер, является удаление содержимого каталога:
%windir%SoftwareDistribution
После запуска службы Windows Update содержимое этой папки будет заново создано.
Вторник, 12 — Август — 2014
Перемещаясь из одной компании в другую, практически везде вижу одну и ту же картину: клонированные с помощью Acronis или Ghost рабочие станции, а также тиражированные на гипервизоре VMWare сервера не распознаются сервером Windows Server Update Services (WSUS). То есть, компьютеры видят WSUS и ставят с него обновления, на самой же консоли управления WSUS их не видно — из 600 рабочих станций распознаются, к примеру, всего 100.
Причина весьма проста — после первого же визита на Windows Update служба WUAUServ генерирует уникальный идентификатор SusClientId, затем администратор сохраняет образ уже обновленной операционной системы. У всех растиражированных с данного образа копии ОС этот идентификатор будет одинаков.
Заменить SusClientId просто, и статей на эту тему предостаточно. Меня же интересовало написание скрипта, который можно применить в любой компании сразу ко всем машинам. Думается, мне не жалко им поделиться с вами. Сохраните скрипт в шаринг NetLogon контроллера домена, затем сконфигурируйте его запуск в качестве Startup Script для всех компьютеров домена. Для отсылки уведомлений на почту раскидайте на все компьютеры программу BLAT (http://www.blat.net/).
@echo off
set NetworkFolder=\FileServerDataComputer_ReportsSusClientId
set LogFileName=C:WindowsSusClientId.txt
set MailServer=mail.company.lv
set MailFrom=%ComputerName%@Company.local
set RcptTo=ITSupport@Company.lvset SusClientId=None
if not exist %NetworkFolder% goto End
if exist «%NetworkFolder%Computer_%ComputerName%.txt» goto End
echo Checking WSUS Client ID on %ComputerName% at %date% %time% > «%LogFilename%»
for /f «tokens=2,*» %%a in (‘reg query HKLMSoftwareMicrosoftWindowsCurrentversionWindowsUpdate /v SusClientId 2^>NUL ^| findstr SusClientId’) do set SusClientId=%%b
echo Current ID = %SusClientId% >> «%LogFilename%»
if not exist «%NetworkFolder%ID_%SusClientId%.txt» goto Update:ResetID
reg delete HKLMSoftwareMicrosoftWindowsCurrentversionWindowsUpdate /f /v SusClientId
reg delete HKLMSoftwareMicrosoftWindowsCurrentversionWindowsUpdate /f /v SusClientIdValidation
net stop WUAUServ
ping localhost
net start WUAUServ
ping localhost
wuauclt /resetauthorization /detectnowfor /f «tokens=2,*» %%a in (‘reg query HKLMSoftwareMicrosoftWindowsCurrentversionWindowsUpdate /v SusClientId 2^>NUL ^| findstr SusClientId’) do set SusClientId=%%b
echo WSUS ID has been updated >> %LogFilename%
echo New ID = %SusClientId% >> %LogFilename%
if exist «%NetworkFolder%ID_%SusClientId%.txt» goto End
ping localhost
blat.exe %LogFilename% -f %MailFrom% -to %RcptTo% -subject «WSUS Client ID Update Notification» -server %MailServer%:Update
echo %ComputerName% > «%NetworkFolder%ID_%SusClientId%.txt»
echo %SusClientId% > «%NetworkFolder%Computer_%ComputerName%.txt»
:End
Как оно работает:
- Отрабатывая впервые, скрипт сохраняет в сетевой папке %NetworkFolder% два файла: %ComputerName%.txt и ID_%SusClientId%.txt. Ну вот так мне захотелось.
- В дальнейшем, если файл с именем компьютера уже есть, скрипт просто заканчивает свою работу. Это означает, что он уже отстрелялся ранее.
- Если же обнаруживается, что файла с именем компьютера нет, а файл с идентификатором есть, выходит, что этот ID уже занят кем-то другим. В этом случае скрипт уничтожает свой текущий SusClientId и генерирует его заново. Новый идентификатор высылается на заданный почтовый адрес для того, чтобы отметить сам факт его успешной замены.
Заметил, что при первой зачистке существует вероятность генерации нового идентификатора, идентичного предыдущему. С остальным, думаю, разберётесь сами.
Если служба обновлений Windows работает не корректно, обновления не загружаются или не устанавливаются, то самый простой и эффективней способ решить проблему со службой Windows Update – восстановить ее исходные настройки. В этой статье мы покажем, как сбросить конфигурацию агента и службы обновлений Windows Update.
Содержание:
- Средство устранения неполадок Центра обновления Windows
- Сброс настроек Windows Update с помощью PowerShell
- Утилита Reset Windows Update Tool
- Восстановление исходных настроек Windows Update из командной строки
Обычно для отладки и дебага ошибок службы обновления Windows администратору необходимо проанализировать коды ошибок в файле журнала обновлений %windir%WindowsUpdate.log (в Windows 10 и 11 получить файл WindowsUpdate.log можно таким способом). Количество возможных ошибок, с которыми может столкнуться администратор при анализе журнала обновлений исчисляется десятками (список всех ошибок Windows Update) и процесс их разрешения в основном нетривиальный. В некоторых случаях вместо детального анализа ошибок Windows Update гораздо быстрее и проще сначала произвести полный сброс настроек службы Windows Update. После сброса Windows Update вы можете выполнить сканирование и поиск обновлений.
Средство устранения неполадок Центра обновления Windows
Прежде чем перейти к сбросу конфигурации центра обновления Windows, настоятельно рекомендуем сначала попробовать более встроенное средство для автоматического исправления проблем в службе обновления Windows – средство устранения неполадок Центра обновления Windows (Windows Update Troubleshooter).
В Windows 10 и 11 Windows Update Troubleshooter уже встроен в современную панель Settings. Для предыдущих версий Windows его придется скачать вручную по ссылкам ниже:
- Windows 11 — Settings -> System -> Troubleshooter -> Other Troubleshooter -> Windows Update;
- Windows 10 – скачите wu10.diagcab по ссылке https://aka.ms/wudiag , либо запустите локальную версию инструмента: Пуск -> Параметры -> Обновления и безопасность -> Устранение неполадок -> Центр обновлений Windows (Start -> Settings -> Updates and Security -> Troubleshoot -> Additional Troubleshooters-> Windows Updates – resolve problems that prevent you from updating windows);
Для быстрого доступа к средствам исправления неполадок Windows можно использовать команду ms-settings:
ms-settings:troubleshoot
- Windows 7 и Windows 8.1 — WindowsUpdate.diagcab (https://aka.ms/diag_wu).
Дождитесь пока средство устранения неполадок Центра обновления Windows просканирует систему и попытается автоматически исправить все ошибки в службе Windows Update и связанных компонентах.
В моем случае была обнаружена и исправлена потенциальная ошибка в базе данных Центра обновления Windows. После этого перезагрузите компьютер и попробуйте выполнить поиск обновлений. Если обновления не загружаются или не устанавливаются, перейдите к следующему этапу.
Сброс настроек Windows Update с помощью PowerShell
Вы можете использовать PowerShell модуль PSWindowsUpdate для сброса настроек агента и службы Windows Update.
Установите модуль на свой компьютер из галереи скриптов PSGallery:
Install-Module -Name PSWindowsUpdate
Разрешите запуск PowerShell скриптов:
Set-ExecutionPolicy –ExecutionPolicy RemoteSigned -force
Выполните команду:
Reset-WUComponents –verbose
Команда Reset-WUComponents выполняет действия, по остановке служб, перерегистрации dll и очистке каталога C:WindowsSoftwareDistribution, что и описанный чуть ниже bat скрипт.
VERBOSE: Background Intelligent Transfer Service (BITS) VERBOSE: Windows Update (wuauserv) VERBOSE: Application Identity (appidsvc) VERBOSE: Cryptographic Services (cryptsvc) Step 2: Delete the qmgr*.dat files Step 3: Backup software distribution folders VERBOSE: Renaming Software Distribution folder to C:WindowsSoftwareDistribution.bak VERBOSE: Renaming CatRoot folder to C:WindowsSystem32Catroot2.bak Step 4: Remove old Windows Update logs VERBOSE: Deleting the C:WindowsWindowsUpdate.log files. Step 5: Reset Windows Update services VERBOSE: Reset BITS service VERBOSE: Reset Windows Update service Step 6: Reregister dll's VERBOSE: regsvr32.exe / s atl.dll VERBOSE: regsvr32.exe / s urlmon.dll VERBOSE: regsvr32.exe / s mshtml.dll VERBOSE: regsvr32.exe / s shdocvw.dll VERBOSE: regsvr32.exe / s browseui.dll VERBOSE: regsvr32.exe / s jscript.dll VERBOSE: regsvr32.exe / s vbscript.dll VERBOSE: regsvr32.exe / s scrrun.dll VERBOSE: regsvr32.exe / s msxml.dll VERBOSE: regsvr32.exe / s msxml3.dll VERBOSE: regsvr32.exe / s msxml6.dll VERBOSE: regsvr32.exe / s actxprxy.dll VERBOSE: regsvr32.exe / s softpub.dll VERBOSE: regsvr32.exe / s wintrust.dll VERBOSE: regsvr32.exe / s dssenh.dll VERBOSE: regsvr32.exe / s rsaenh.dll VERBOSE: regsvr32.exe / s gpkcsp.dll VERBOSE: regsvr32.exe / s sccbase.dll VERBOSE: regsvr32.exe / s slbcsp.dll VERBOSE: regsvr32.exe / s cryptdlg.dll VERBOSE: regsvr32.exe / s oleaut32.dll VERBOSE: regsvr32.exe / s ole32.dll VERBOSE: regsvr32.exe / s shell32.dll VERBOSE: regsvr32.exe / s initpki.dll VERBOSE: regsvr32.exe / s wuapi.dll VERBOSE: regsvr32.exe / s wuaueng.dll VERBOSE: regsvr32.exe / s wuaueng1.dll VERBOSE: regsvr32.exe / s wucltui.dll VERBOSE: regsvr32.exe / s wups.dll VERBOSE: regsvr32.exe / s wups2.dll VERBOSE: regsvr32.exe / s wuweb.dll VERBOSE: regsvr32.exe / s qmgr.dll VERBOSE: regsvr32.exe / s qmgrprxy.dll VERBOSE: regsvr32.exe / s wucltux.dll VERBOSE: regsvr32.exe / s muweb.dll VERBOSE: regsvr32.exe / s wuwebv.dll Step 7: Reset WinSock VERBOSE: netsh winsock reset Step 8: Reset Proxy VERBOSE: netsh winhttp reset proxy Step 9: Start Windows Update services VERBOSE: Cryptographic Services (cryptsvc) VERBOSE: Application Identity (appidsvc) VERBOSE: Windows Update (wuauserv) VERBOSE: Background Intelligent Transfer Service (BITS) Step 10: Start Windows Update services VERBOSE: wuauclt /resetauthorization /detectnow
Запустите поиск обновлений из панели управления или выполните поиск доступных обновлений с помощью команды PowerShell:
Get-WUList
Утилита Reset Windows Update Tool
Есть еще одни полезный и простой инструмент для сброса настроек Windows Update — Reset Windows Update Tool. Раньше это скрипт был доступен на TechNet. Сейчас автор ведет репозиторий на GitHub (м https://github.com/ManuelGil/Script-Reset-Windows-Update-Tool ).
Для загрузки предлагается скомпилированный exe файл (C++) или обычный скрипт. Я предпочитаю использовать cmd скрипт.
- Скачайте ResetWUEng.zip и распакуйте на диск;
- Запустите файл ResetWUEng.cmd с правами администратора;
- Скрипт определит вашу версию ОС (в моем примере это Windows 10) и предложит 18 различных опций. Некоторые из них напрямую не относятся к сбросу настроек агента WU, но могут быть полезны для исправления различных неисправностей в Windows (проверка диска chkdsk, исправление ошибок в образе Windows с помощью DISM, сброс Winsock, очистка временных файлов и т.д.);
- Для сброса настроек Windows Update достаточно использовать опцию 2 — Resets the Windows Update Components (Сбросить компоненты службы обновления Windows). Нажмите 2 и Enter;
- Скрипт автоматически выполнит все действия, которые мы описали выше при выполнении ручного сброса агента обновлений Windows из командной строки.
Вы можете самостоятельно посмотреть, что делает скрипт, открыв в файл ResetWUEng.cmd в любом текстовом редакторе и изучив его содержимое. Например, опция 2 отправляет на процедуру components.
- После окончания работы скрипта Reset Windows Update Agent перезагрузите компьютер и проверьте работу службы обновлений.
Скрипт ResetWUEng.cmd универсальный и подходит для всех версий Windows: начиная с Windows XP и вплоть до Windows 11.
Восстановление исходных настроек Windows Update из командной строки
Процесс сброса настроек агента и службы обновления Windows состоит из нескольких этапов. Все описанные операции выполняются в командной строке и собраны в один bat файл (готовый скрипт можно скачать по ссылке ниже).
С помощью данного скрипта можно полностью сбросить конфигурацию службы Центра обновлений Windows, и очистить локальный кэш обновлений. Скрипт является универсальный и будет работать как в Windows 11/10/8.1/7, так и в Windows Server 2022/2019/2016/2012 R2/2008 R2. Скрипт помогает устранить большинство типовых ошибок в работе службы Windows Update, когда центр обновлений перестает загружать новые обновления или пишет, что при установке обновления возникают ошибки.
Убедитесь, что настройки Windows Update на вашем компьютере на задаются с помощью доменных или локальных политик. Для вывода результирующих настроек GPO можно воспользоваться утилитой gpresult или rsop.msc. Можно сбросить настройки локальной GPO по этой инструкции.
Итак, по порядку о том, что делает скрипт:
- Остановить службы Windows Update (Центр обновлений Windows), BITS и службы криптографии:
net stop bits
net stop wuauserv
net stop appidsvc
net stop cryptsvc
taskkill /im wuauclt.exe /f - Удалить служебных файлы qmgr*.dat в каталоге %ALLUSERSPROFILE%Application DataMicrosoftNetworkDownloader:
Del "%ALLUSERSPROFILE%Application DataMicrosoftNetworkDownloaderqmgr*.dat"
- Переименовать служебные каталоги, в которых хранятся конфигурационные файлы и кэш обновлений (в случае необходимости их можно будет использовать как резервные копии). После перезапуска службы обновления, эти каталоги автоматически пересоздадутся:
Ren %systemroot%SoftwareDistribution SoftwareDistribution.bak
Ren %systemroot%system32catroot2 catroot2.bak - Удаление старого журнала windowsupdate.log
del /f /s /q %windir%windowsupdate.log
- Сброс разрешений на службы BITS и Windows Update (в случае, если права на службы были изменены)
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)
sc.exe sdset cryptsvc D:(A;;CCLCSWLOCRRC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLCRSDRCWDWO;;;SO)(A;;CCLCSWRPWPDTLOCRRC;;;SY)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;WD)
sc.exe sdset trustedinstaller D:(A;;CCLCSWLOCRRC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLCRSDRCWDWO;;;SO)(A;;CCLCSWRPWPDTLOCRRC;;;SY)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;WD) - Перерегистрация файлов системных динамических библиотек (dll), связанных со службами BITS и Windows Update:
cd /d %windir%system32
regsvr32.exe /s atl.dll
regsvr32.exe /s urlmon.dll
regsvr32.exe /s mshtml.dll
regsvr32.exe /s shdocvw.dll
regsvr32.exe /s browseui.dll
regsvr32.exe /s jscript.dll
regsvr32.exe /s vbscript.dll
regsvr32.exe /s scrrun.dll
regsvr32.exe /s msxml.dll
regsvr32.exe /s msxml3.dll
regsvr32.exe /s msxml6.dll
regsvr32.exe /s actxprxy.dll
regsvr32.exe /s softpub.dll
regsvr32.exe /s wintrust.dll
regsvr32.exe /s dssenh.dll
regsvr32.exe /s rsaenh.dll
regsvr32.exe /s gpkcsp.dll
regsvr32.exe /s sccbase.dll
regsvr32.exe /s slbcsp.dll
regsvr32.exe /s cryptdlg.dll
regsvr32.exe /s oleaut32.dll
regsvr32.exe /s ole32.dll
regsvr32.exe /s shell32.dll
regsvr32.exe /s initpki.dll
regsvr32.exe /s wuapi.dll
regsvr32.exe /s wuaueng.dll
regsvr32.exe /s wuaueng1.dll
regsvr32.exe /s wucltui.dll
regsvr32.exe /s wups.dll
regsvr32.exe /s wups2.dll
regsvr32.exe /s wuweb.dll
regsvr32.exe /s qmgr.dll
regsvr32.exe /s qmgrprxy.dll
regsvr32.exe /s wucltux.dll
regsvr32.exe /s muweb.dll
regsvr32.exe /s wuwebv.dll - Сброс параметров Winsock
netsh winsock reset
- Сброс параметров системного прокси
netsh winhttp reset proxy
- Опционально. При использовании локального сервера WSUS, возможно дополнительно сбросить текущую привязку клиента к серверу WSUS путем удаления следующих параметров в ветке реестра HKLMSOFTWAREMicrosoftWindowsCurrentVersionWindowsUpdate:
REG DELETE "HKLMSOFTWAREMicrosoftWindowsCurrentVersionWindowsUpdate" /v AccountDomainSid /f
REG DELETE "HKLMSOFTWAREMicrosoftWindowsCurrentVersionWindowsUpdate" /v PingID /f
REG DELETE "HKLMSOFTWAREMicrosoftWindowsCurrentVersionWindowsUpdate" /v SusClientId /f
REG DELETE "HKLMSOFTWAREPoliciesMicrosoftWindowsWindowsUpdate" /v TargetGroup /f
REG DELETE "HKLMSOFTWAREPoliciesMicrosoftWindowsWindowsUpdate" /v WUServer /f
REG DELETE "HKLMSOFTWAREPoliciesMicrosoftWindowsWindowsUpdate" /v WUStatusServer /f - Запуск остановленных служб:
sc.exe config wuauserv start= auto
sc.exe config bits start= delayed-auto
sc.exe config cryptsvc start= auto
sc.exe config TrustedInstaller start= demand
sc.exe config DcomLaunch start= auto
net start bits
net start wuauserv
net start appidsvc
net start cryptsvc - Опционально. Для Windows 7 и 8.1 можно установить/переустановить последнюю версию агента Windows Update Agent (WUA). Скачать актуальную версию агента можно со страницы https://support.microsoft.com/en-us/kb/949104. Нужно скачать файл для вашей версии WindowsАктуальная версия агента WUA для Windows 7 SP1 x64 — 7.6. Принудительная переустановка агента WindowsUpdate выполняется следующими командами:
- для Windows 7 x86:
WindowsUpdateAgent-7.6-x86.exe /quiet /norestart /wuforce
- для Windows 7 x64:
WindowsUpdateAgent-7.6-x64.exe /quiet /norestart /wuforce
Совет. Текущую версию агента Windows Update Agent (WUA) в Windows 7 можно узнать в свойствах файла %windir%system32Wuaueng.dll. В нашем примере это 7.6.7600.256.
- для Windows 7 x86:
Осталось перезагрузить компьютер и запустить синхронизацию с сервером Windows Update /WSUS.
wuauclt /resetauthorization /detectnow
Затем зайдите в Центр обновления и проверьте, пропали ли проблемы при поиске, скачивании и установке обновлений.
Сам скрипт reset_win_update.bat можно скачать по ссылке reset_win_update.zip (пункты 9 и 11 в скрипте не выполняются, т.к. являются опциональными). Скрипт нужно скачать, распаковать и запустить с правами администратора.
После этого перезагрузите компьютер, затем зайдите в Центр обновлений и проверьте, пропали ли проблемы при поиске, скачивании и установке обновлений.
Если обновления Windows стали скачиваться и устанавливать корректно, можно удалить папки резервные копии папок:
Ren %systemroot%SoftwareDistribution SoftwareDistribution.bak
Ren %systemroot%system32catroot2 catroot2.bak
Если ничего не помогло, попробуйте вручную скачать и установить последнее кумулятивное обновление для вашей версии Windows из каталога обновлений Microsoft Update Catalog.
Как выполнить процедуру WSUS Reset
WSUS Reset — это безопасная процедура, которая проводит проверку имеющихся файлов метаданных с информацией о них в БД WSUS, и при выявлении расхождений – исправляет проблему.
На сервере с ролью WSUS:
-
Закройте консоль WSUS;
-
Остановите службу Update Services;
-
Скопируйте содержимое папки WSUSContent в безопасное место, после чего удалите все содержимое;
-
Запустите службу Update Services;
-
В elevated командной строке перейдите в каталог C:Program FilesUpdate ServicesTools
-
Запустите команду WSUSUtil.exe RESET
Как проверить завершения процесса?
Вам нужно открыть лог SoftwareDistribution.log (по умолчанию расположен в каталоге C:Program FilesUpdate ServicesLogFiles), в нем должны появиться строки вида:
ExecutionContext.runTryCode State Machine Reset Agent Starting <– при начале сброса
…
ExecutionContext.runTryCode State Machine Reset Agent Finished <– при завершении
Если последняя строка появилась в логе, то можно считать процедуру WSUS Reset выполненной и приступать к проверке работоспособности WSUS.
Автор первичной редакции:
Алексей Максимов
Время публикации: 05.04.2016 16:48
@ECHO OFF
echo .
echo Simple Script to reset Windows updates components—credits to Shawn Brink for the commands.
echo .
PAUSE
echo .
set b=0
:bits
set /a b=%b%+1
if %b% equ 3 (
goto end1
)
net stop bits
echo Checking the bits service status.
sc query bits | findstr /I /C:«STOPPED»
if not %errorlevel%==0 (
goto bits
)
goto loop2
:end1
cls
echo.
echo Failed to reset Windows Update due to bits service failing to stop
echo Please run the script as administartor by right clicking the WuReset file or your BITS service isn‘t responding.
echo.
pause
goto Start
:loop2
set w=0
:wuauserv
set /a w=%w%+1
if %w% equ 3 (
goto end2
)
net stop wuauserv
echo Checking the wuauserv service status.
sc query wuauserv | findstr /I /C:«STOPPED»
if not %errorlevel%==0 (
goto wuauserv
)
goto loop3
:end2
cls
echo.
echo Failed to reset Windows Update due to wuauserv service failing to stop.
echo.
pause
goto Start
:loop3
set app=0
:appidsvc
set /a app=%app%+1
if %app% equ 3 (
goto end3
)
net stop appidsvc
echo Checking the appidsvc service status.
sc query appidsvc | findstr /I /C:«STOPPED»
if not %errorlevel%==0 (
goto appidsvc
)
goto loop4
:end3
cls
echo.
echo Failed to reset Windows Update due to appidsvc service failing to stop.
echo.
pause
goto Start
:loop4
set c=0
:cryptsvc
set /a c=%c%+1
if %c% equ 3 (
goto end4
)
net stop cryptsvc
echo Checking the cryptsvc service status.
sc query cryptsvc | findstr /I /C:«STOPPED»
if not %errorlevel%==0 (
goto cryptsvc
)
goto Reset
:end4
cls
echo.
echo Failed to reset Windows Update due to cryptsvc service failing to stop.
echo.
pause
goto Start
:Reset
Ipconfig /flushdns
del /s /q /f «%ALLUSERSPROFILE%Application DataMicrosoftNetworkDownloaderqmgr*.dat»
cd /d %windir%system32
if exist «%SYSTEMROOT%winsxspending.xml.bak» del /s /q /f «%SYSTEMROOT%winsxspending.xml.bak»
if exist «%SYSTEMROOT%winsxspending.xml» (
takeown /f «%SYSTEMROOT%winsxspending.xml»
attrib —r —s —h /s /d «%SYSTEMROOT%winsxspending.xml»
ren «%SYSTEMROOT%winsxspending.xml» pending.xml.bak
)
if exist «%SYSTEMROOT%SoftwareDistribution.bak» rmdir /s /q «%SYSTEMROOT%SoftwareDistribution.bak»
if exist «%SYSTEMROOT%SoftwareDistribution» (
attrib —r —s —h /s /d «%SYSTEMROOT%SoftwareDistribution»
ren «%SYSTEMROOT%SoftwareDistribution» SoftwareDistribution.bak
)
if exist «%SYSTEMROOT%system32Catroot2.bak» rmdir /s /q «%SYSTEMROOT%system32Catroot2.bak»
if exist «%SYSTEMROOT%system32Catroot2» (
attrib —r —s —h /s /d «%SYSTEMROOT%system32Catroot2»
ren «%SYSTEMROOT%system32Catroot2» Catroot2.bak
)
if exist «%SYSTEMROOT%WindowsUpdate.log.bak» del /s /q /f «%SYSTEMROOT%WindowsUpdate.log.bak»
if exist «%SYSTEMROOT%WindowsUpdate.log» (
attrib —r —s —h /s /d «%SYSTEMROOT%WindowsUpdate.log»
ren «%SYSTEMROOT%WindowsUpdate.log» WindowsUpdate.log.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)
regsvr32.exe /s atl.dll
regsvr32.exe /s urlmon.dll
regsvr32.exe /s mshtml.dll
regsvr32.exe /s shdocvw.dll
regsvr32.exe /s browseui.dll
regsvr32.exe /s jscript.dll
regsvr32.exe /s vbscript.dll
regsvr32.exe /s scrrun.dll
regsvr32.exe /s msxml.dll
regsvr32.exe /s msxml3.dll
regsvr32.exe /s msxml6.dll
regsvr32.exe /s actxprxy.dll
regsvr32.exe /s softpub.dll
regsvr32.exe /s wintrust.dll
regsvr32.exe /s dssenh.dll
regsvr32.exe /s rsaenh.dll
regsvr32.exe /s gpkcsp.dll
regsvr32.exe /s sccbase.dll
regsvr32.exe /s slbcsp.dll
regsvr32.exe /s cryptdlg.dll
regsvr32.exe /s oleaut32.dll
regsvr32.exe /s ole32.dll
regsvr32.exe /s shell32.dll
regsvr32.exe /s initpki.dll
regsvr32.exe /s wuapi.dll
regsvr32.exe /s wuaueng.dll
regsvr32.exe /s wuaueng1.dll
regsvr32.exe /s wucltui.dll
regsvr32.exe /s wups.dll
regsvr32.exe /s wups2.dll
regsvr32.exe /s wuweb.dll
regsvr32.exe /s qmgr.dll
regsvr32.exe /s qmgrprxy.dll
regsvr32.exe /s wucltux.dll
regsvr32.exe /s muweb.dll
regsvr32.exe /s wuwebv.dll
regsvr32 /s wudriver.dll
netsh winsock reset
netsh winsock reset proxy
:Start
net start bits
net start wuauserv
net start appidsvc
net start cryptsvc
echo Task completed sucessfully!Please restart your computer and check for the updates again.
PAUSE
Время прочтения
2 мин
Просмотры 28K
Клиенты WSUS не хотят обновляться после смены сервера?
Тогда мы идем к вам. (С)
У всех бывали ситуации, когда что-нибудь переставало работать. В данной статье речь пойдет о WSUS (более подробную информации о WSUS можно получить здесь и здесь). А точнее о том, как заставить клиентов WSUS (т.е. наши с вами компьютеры) заново получать обновления после переноса или восстановления существующего сервера обновлений.
Итак, ситуация следующая
Сдох сервер WSUS. Точнее RAID-контроллер аж 2000 года выпуска. Но радости этот факт не прибавил. После непродолжительной возни (с попытками восстановить RAID, загубленный помирающим контроллером), было принято решение
послать все
развернуть новый WSUS-сервер.
В итоге мы получили работающий WSUS, на который почему-то не коннектились клиенты.
Моменты: WSUS привязан с FQDN через внутренний DNS-сервер, WSUS-сервер прописан в групповых политиках и распространяется на клиентов через AD, настройки для сервера по-умолчанию, перед началом всех действий обновите сам WSUS и выполните синхронизацию обновлений.
После анализа ситуации, было выявлено несколько ключевым моментов
- Клинч клиента (речь о wuauclt) при попытке соединиться с SID старого сервера WSUS.
- Проблема с неустановленными обновлениями, скачанными со старого WSUS-сервера.
- Парковка служб влияющих на работу wuauclt (речь о wuauserv, bits и cryptsvc). Парковка произошла по разным причинам, которые детально не анализировались.
В итоге все решение вылилось в маленький скрипт, который распространяется групповыми политиками через AD или собственными руками (и ногами). Скрипт использует наиболее безопасный вариант починки и не приносил ни одного негативного результата уже на протяжении полугода использования.
Опишу, что делается (для особо любопытных)
Паркуем службу сервера обновлений, чистим дескриптор безопасности службы связи с WSUS, удаляем имеющиеся обновления от предыдущего WSUS, чистим реестр от упоминаний о предыдущем WSUS, стартуем службы автоматического обновления (wuauserv), фоновую интеллектуальную службу передачи (bits) и службу криптографии (cryptsvc), в самом конце принудительно стукаемся в WSUS с обнулением авторизации, обнаружением нового WSUS и генерацией отчета на сервер.
И как всегда: все действия описанные выше и ниже вы выполняете на свой страх и риск. Пожалуйста, удостоверьтесь в том что все необходимые данные сохранены до выполнения скрипта.
Скрипт
net stop wuauserv
sc sdset wuauserv D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)
del /f /s /q %windir%SoftwareDistributiondownload*.*
REG DELETE "HKLMSOFTWAREMicrosoftWindowsCurrentVersionWindowsUpdate" /v AccountDomainSid /f
REG DELETE "HKLMSOFTWAREMicrosoftWindowsCurrentVersionWindowsUpdate" /v PingID /f
REG DELETE "HKLMSOFTWAREMicrosoftWindowsCurrentVersionWindowsUpdate" /v SusClientId /f
net start wuauserv && net start bits && net start cryptsvc
wuauclt /resetauthorization /detectnow /reportnow
21.06.2021 – Пожалуйста, ищите последнюю версию этого документа по ссылке Как починить Windows Update?
Обновлено 12.03.2021 – добавлен скрипт для восстановление доступов к реестру и системным папкам
Ранее, я уже писал, как сверить список компьютеров, которые есть в AD с теми, которые есть во WSUS. Если эти списки не совпадают, то у вас проблема и часть компьютеров не обновляется.
В самом простом случае, вы забыли сделать групповую политику, которая настраивает клиентские компьютеры и серверы на обновление со WSUS, или сконфигурировали ее так, что она не применяется. Ручная настройка параметров через gpedit.msc тоже допустима, но только для тех компьютеров, которые не входят в домен.
Итак, политика применяется, но все равно компьютер не обновляется. Что делать и как лечить?
Для простоты, выкладываю все эти скрипты в уже готовом виде: Wsus-fix
1. Первый скрипт самый простой, и, на самом деле, даже не для лечения используется, а для того, чтобы принудительно запустить проверку на обновление, ну и, заодно, чистит папку, в которой накапливаются дистрибутивы уже установленных обновлений:
wsus_detect_manual.cmd
net stop wuauserv && net stop bits && net stop cryptsvc
del /f /s /q %windir%SoftwareDistributiondownload*.*
net start wuauserv && net start bits && net start cryptsvc
wuauclt.exe /detectnow exit
2. Второй скрипт нужен для того, чтобы “оживить” неработающий сервис WSUS. В нем идет чистка от старых обновлений, после чего папки SoftwareDistribution и Catroot2 переименовываются, что при перезапуске сервиса приведет к их пересозданию. Затем системные dll библиотеки перерегистрируются.
fix_wsus_service.cmd
net stop bits
net stop wuauserv
net stop cryptsvc
del /f /s /q %windir%SoftwareDistributiondownload*.*
ren %systemroot%System32Catroot2 Catroot2.old
ren %systemroot%SoftwareDistribution SoftwareDistribution.old
REM del /f /s /q %windir%SoftwareDistribution*.*
del /f /s /q %windir%windowsupdate.log
%windir%system32regsvr32.exe /U /s %windir%system32vbscript.dll
%windir%system32regsvr32.exe /U /s %windir%system32mshtml.dll
%windir%system32regsvr32.exe /U /s %windir%system32msjava.dll
%windir%system32regsvr32.exe /U /s %windir%system32msxml.dll
%windir%system32regsvr32.exe /U /s %windir%system32actxprxy.dll
%windir%system32regsvr32.exe /U /s %windir%system32shdocvw.dll
%windir%system32regsvr32.exe /U /s %windir%system32Mssip32.dll
%windir%system32regsvr32.exe /U /s %windir%system32wintrust.dll
%windir%system32regsvr32.exe /U /s %windir%system32initpki.dll
%windir%system32regsvr32.exe /U /s %windir%system32dssenh.dll
%windir%system32regsvr32.exe /U /s %windir%system32rsaenh.dll
%windir%system32regsvr32.exe /U /s %windir%system32gpkcsp.dll
%windir%system32regsvr32.exe /U /s %windir%system32sccbase.dll
%windir%system32regsvr32.exe /U /s %windir%system32slbcsp.dll
%windir%system32regsvr32.exe /U /s %windir%system32cryptdlg.dll
%windir%system32regsvr32.exe /U /s %windir%system32Urlmon.dll
%windir%system32regsvr32.exe /U /s %windir%system32Oleaut32.dll
%windir%system32regsvr32.exe /U /s %windir%system32msxml2.dll
%windir%system32regsvr32.exe /U /s %windir%system32Browseui.dll
%windir%system32regsvr32.exe /U /s %windir%system32shell32.dll
%windir%system32regsvr32.exe /U /s %windir%system32Mssip32.dll
%windir%system32regsvr32.exe /U /s %windir%system32atl.dll
%windir%system32regsvr32.exe /U /s %windir%system32jscript.dll
%windir%system32regsvr32.exe /U /s %windir%system32msxml3.dll
%windir%system32regsvr32.exe /U /s %windir%system32softpub.dll
%windir%system32regsvr32.exe /U /s %windir%system32wuapi.dll
%windir%system32regsvr32.exe /U /s %windir%system32wuaueng.dll
%windir%system32regsvr32.exe /U /s %windir%system32wuaueng1.dll
%windir%system32regsvr32.exe /U /s %windir%system32wucltui.dll
%windir%system32regsvr32.exe /U /s %windir%system32wups.dll
%windir%system32regsvr32.exe /U /s %windir%system32wups2.dll
%windir%system32regsvr32.exe /U /s %windir%system32wuweb.dll
%windir%system32regsvr32.exe /s %windir%system32vbscript.dll
%windir%system32regsvr32.exe /s %windir%system32mshtml.dll
%windir%system32regsvr32.exe /s %windir%system32msjava.dll
%windir%system32regsvr32.exe /s %windir%system32msxml.dll
%windir%system32regsvr32.exe /s %windir%system32actxprxy.dll
%windir%system32regsvr32.exe /s %windir%system32shdocvw.dll
%windir%system32regsvr32.exe /s %windir%system32Mssip32.dll
%windir%system32regsvr32.exe /s %windir%system32wintrust.dll
%windir%system32regsvr32.exe /s %windir%system32initpki.dll
%windir%system32regsvr32.exe /s %windir%system32dssenh.dll
%windir%system32regsvr32.exe /s %windir%system32rsaenh.dll
%windir%system32regsvr32.exe /s %windir%system32gpkcsp.dll
%windir%system32regsvr32.exe /s %windir%system32sccbase.dll
%windir%system32regsvr32.exe /s %windir%system32slbcsp.dll
%windir%system32regsvr32.exe /s %windir%system32cryptdlg.dll
%windir%system32regsvr32.exe /s %windir%system32Urlmon.dll
%windir%system32regsvr32.exe /s %windir%system32Oleaut32.dll
%windir%system32regsvr32.exe /s %windir%system32msxml2.dll
%windir%system32regsvr32.exe /s %windir%system32Browseui.dll
%windir%system32regsvr32.exe /s %windir%system32shell32.dll
%windir%system32regsvr32.exe /s %windir%system32Mssip32.dll
%windir%system32regsvr32.exe /s %windir%system32atl.dll
%windir%system32regsvr32.exe /s %windir%system32jscript.dll
%windir%system32regsvr32.exe /s %windir%system32msxml3.dll
%windir%system32regsvr32.exe /s %windir%system32softpub.dll
%windir%system32regsvr32.exe /s %windir%system32wuapi.dll
%windir%system32regsvr32.exe /s %windir%system32wuaueng.dll
%windir%system32regsvr32.exe /s %windir%system32wuaueng1.dll
%windir%system32regsvr32.exe /s %windir%system32wucltui.dll
%windir%system32regsvr32.exe /s %windir%system32wups.dll
%windir%system32regsvr32.exe /s %windir%system32wups2.dll
%windir%system32regsvr32.exe /s %windir%system32wuweb.dll
net start bits
net start wuauserv
net start cryptsvc
wuauclt /detectnow
exit
3. Этот скрипт применяется в тех случаях, когда компьютер был недавно клонирован, или в тех, когда регистрации в WSUS у компьютера так и не произошло. Он отличается от предыдущего только предпоследней строчкой, в которой производится обнуление авторизации с перегенерацией идентификатора. Приведу только эту строчку:
wsus_resetaut_detect_manual.cmd
wuauclt.exe /resetauthorization /detectnow
4. Если нужно просто обнулить авторизацию, то можно воспользоваться конструкцией из предыдущего скрипта. Практика показала, что еще лучше удалять лишние ключи из реестра, для чего мы используем следующий скрипт
AU_Clean_SID.cmd
@echo on
net stop wuauserv
REG DELETE “HKLMSOFTWAREMicrosoftWindowsCurrentVersionWindowsUpdate” /v AccountDomainSid /f
REG DELETE “HKLMSOFTWAREMicrosoftWindowsCurrentVersionWindowsUpdate” /v PingID /f
REG DELETE “HKLMSOFTWAREMicrosoftWindowsCurrentVersionWindowsUpdate” /v SusClientId /f
net start wuauserv
wuauclt /resetauthorization /detectnow
5. Иногда, для того, чтобы все заработало нужно переустановить агента WSUS. Вначале нужно скачать latest Windows Update Agent, ну а затем установить соответствующую редакцию
для x32 версий Windows
windowsupdateagent30-x86.exe /wuforce
для x64 версий Windows
windowsupdateagent30-x64.exe /wuforce
Если вы счастливый обладатель Itanium – догадаетесь сами 🙂
После установки агента нужно обязательно перезагрузиться.
6. Для “лечения” ошибок 0x80070005, т.е. ошибок доступа может пригодиться нижеприведенный скрипт. Он восстанавливает доступы для администраторов и системы к реестру и системным папкам.
Для выполнения этого скрипта понадобится майкрософтовская утилита subinacl.exe. Она входит в resource kit для Windows Server 2003, но пользоваться той версией, что входит туда не стоит, т.к. там неприятные ошибки. Следует скачать subinacl.exe версии 5.2.3790.1180.
Restore_registry_and_system_permission.cmd
@echo off
REM Применять при ошибках 0x80070005 Windows Update
subinacl /subkeyreg HKEY_LOCAL_MACHINE /grant=administrators=f
subinacl /subkeyreg HKEY_CURRENT_USER /grant=administrators=f
subinacl /subkeyreg HKEY_CLASSES_ROOT /grant=administrators=f
subinacl /subdirectories %SystemDrive% /grant=administrators=f
subinacl /subkeyreg HKEY_LOCAL_MACHINE /grant=system=f
subinacl /subkeyreg HKEY_CURRENT_USER /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT /grant=system=f
subinacl /subdirectories %SystemDrive% /grant=system=f
Скрипт был найден в статье базы знаний Microsoft
Все эти скрипты можно выполнять практически автоматически, в случае возникновения проблем. Если в результате проблема таки не решена, то приходится разбираться уже плотнее. И тут нам пригодится тот самый windowsupdate.log, который лежит в корне папки Windows. Если компьютер проблемный, то файл этот большого размера. Для простоты, желательно его удалить перед тем как запускать скрипты. Почти во всех скриптах предусмотрена команда его удаления, но не все так просто. Не смотря на остановку сервиса wuauserv, обычно, его продолжают держать открытые IE и т.п. Поэтому, есть хитрый способ. Запускаю
notepad.exe %windir%windowsupdate.log
Выделяю весь текст, удаляю его и сохраняю вместо старого файла (не забыть в диалоге сохранения поменять тип файла на *.*, а то по умолчанию – *.txt)
Итак, вернемся к логу, коды ошибок WSUS 3 могут помочь в разбирательстве.
Одна из распространенных проблем со wsus клиентом на серверах может заключаться в том, что сам сервис может подключаться к WSUS через прокси, а этого не нужно и наоборот. Манипулировать этим поведением можно с помощью команды proxycfg
Доступ без прокси: proxycfg –d
Доступ через прокси с опциональным указанием байпас листа: proxycfg –d
Проимпортировать пользовательские настройки: proxycfg –u
Стоит заметить, что есть случаи, когда заставить клиента обновляться со wsus так и не получается. У меня есть прецеденты с парочкой Windows Server 2003 R2, которые мне побороть так и не удалось. Поэтому я их обновляю через интернет 🙂
Свежие операционные системы типа Windows 7, Windows 2008 иногда “заводятся” с трудом. Для таких случаев, эмпирическим путем, был найден алгоритм типа:
1. Обновляемся первый раз с сайта microsoft с обновлением агента
2. Потом обновляем агента уже локально
3. А потом все начинает работать
Надеюсь, что плоды наших трудов кому-нибудь помогут.
Для простоты, выкладываю все эти скрипты в уже готовом виде: Wsus-fix
Довелось наблюдать следующую картину: некоторые рабочие станции вдруг стали отваливаться от WSUS. При этом, по мере увеличения парка ПК с Windows 10, случаи стали происходить чаще, т.е. примечательно то, что данная проблема происходила только на компьютерах с Windows 10.
Выявить причину или точную закономерность, к сожалению не удалось, и даже ПК, купленные в одной партии, с идентичными программно-аппаратными характеристиками вдруг вели себя по-разному: основная масса корректно взаимодействовала с WSUS, а некоторые станции в какой-то момент переставали сообщать о своем состоянии.
Есть, однако, предположение, что это как-то связано с установкой или попыткой установки Feature Upgrade (переход к новому билду ОС), но 100% подтверждения этому нет.
В консоли WSUS при этом можно наблюдать одну из следующих картин:
Рис. 1 — ПК в какой-то момент перестал отчитываться о своем состоянии
Рис. 2 — ПК есть на WSUS, но отчетов вообще не отправляет
РЕШЕНИЕ:
1. Первым делом нужно убедиться в правильной настройке адреса сервера WSUS на клиентской машине
Для этого проверяем ветку реестра:
HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsWindowsUpdate
2. Убеждаемся в доступности самого сервера WSUS с клиентской машины
ping, tracert, проверка порта telnet-ом и т.д.
3. Если предыдущие два пункта выполнены успешно, выполняем команду:
wuauclt /detectnow /resetauthorization
РЕКОМЕНДАЦИЯ: перед этим лучше удалить ПК на WSUS’е
Данная команда должна заново перерегистрировать станцию на сервере WSUS
ВАЖНО: Скорее всего, клиент «отрепортится» не сразу, и может пройти значительное количество времени (от нескольких десятков минут и более)
4. Командой
wuauclt /reportnow
можно попробовать отправить статистику на WSUS вручную.
После успешного проделывания команд, рабочая станция на WSUS актуализируется:
Рис. 3 — ПК зарегистрировался на WSUS и корректно отправляет информацию
В галерее скриптов Technet есть довольно полезный и простой скрипт для сброса компонентов центра обновлений — Reset Windows Update Agent. Скрипт универсальный и подходит для всех версий Windows: начиная с Windows XP и заканчивая последними версиями Windows 10. Рассмотрим, как им пользоваться.
Прежде чем перейти к сбросу конфигурации центра обновления Windows настоятельно рекомендуем сначала попробовать более простое и эффективное средство для автоматического исправления проблем в службе обновления Windows – средство устранения неполадок Центра обновления Windows (Windows Update Troubleshooter).