Pull to refresh

Чиним клиентов WSUS

System administration *
Sandbox
Клиенты WSUS не хотят обновляться после смены сервера?
Тогда мы идем к вам. (С)


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

Итак, ситуация следующая

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

В итоге мы получили работающий WSUS, на который почему-то не коннектились клиенты.
Моменты: WSUS привязан с FQDN через внутренний DNS-сервер, WSUS-сервер прописан в групповых политиках и распространяется на клиентов через AD, настройки для сервера по-умолчанию, перед началом всех действий обновите сам WSUS и выполните синхронизацию обновлений.

После анализа ситуации, было выявлено несколько ключевым моментов

  1. Клинч клиента (речь о wuauclt) при попытке соединиться с SID старого сервера WSUS.
  2. Проблема с неустановленными обновлениями, скачанными со старого WSUS-сервера.
  3. Парковка служб влияющих на работу 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%\SoftwareDistribution\download\*.*
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v AccountDomainSid /f
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v PingID /f
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SusClientId /f 
net start wuauserv && net start bits && net start cryptsvc
wuauclt /resetauthorization /detectnow /reportnow
Tags:
Hubs:
Total votes 9: ↑8 and ↓1 +7
Views 26K
Comments Comments 7