Центр обновления windows реестр. Настройка клиентов WSUS с помощью групповых политик

Published on Февраль 18, 2009 by · Комментариев нет

В этой статье я расскажу вам о некоторых ключах реестра (registry keys), которые связаны с обновлением Windows (Windows Update). Я покажу вам различные параметры, которые могут принимать эти ключи реестра.

Если вы пропустили вторую часть этой статьи, то, пожалуйста, прочитайте

Хотя и обновление Windows (Windows Update) и WSUS, в общем, достаточно легко настраивать, иногда вы можете получить более подробный контроль, путем внесения некоторых изменений в реестре Windows. В этой статье, я покажу вам некоторые ключи реестра, которые связаны с обновлением Windows (Windows Update). Я покажу вам различные параметры, которые могут принимать эти ключи реестра.

Для начала

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

Есть еще одна вещь, о которой я должен вам рассказать. Тонкая настройка, о которой я хочу вам рассказать, применяется только для компьютеров, работающих под управлением Windows XP. Вы можете вносить изменения для определенных машин напрямую, или может их применить как часть сценария при входе (login script). Также некоторые ключи, о которых я расскажу, могут не существовать по умолчанию. Если вы хотите использовать ключ, который не существует, то вы должны для начала создать его. Вы также должны знать, что поведением обновления Windows можно управлять с помощью политики группы (group policy). Политики групп могут иногда модифицировать ключи реестра таким образом, что они следуют заданному ими поведению.

Повышение привилегий

Одна из проблем при получении обновлений от сервера WSUS заключается в том, что пользователи не могут утверждать или отказываться от обновлений до тех пор, пока они не являются членами группы локальных администраторов (local administrators group). Однако, вы можете использовать реестр, для того чтобы повысить привилегии пользователей таким образом, чтобы они имели возможность устанавливать или отказываться от установки изменений вне зависимости, являются ли они членами группы локальных администраторов (local administrator) или нет. С другой стороны, вы также можете запретить пользователям устанавливать обновления и оставить это право администратору (Admin).

Ключ реестра, который отвечает за это: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\ElevateNonAdmins

Ключ ElevateNonAdmins имеет два возможных значения. Значение по умолчанию, равное 1, позволяет пользователям, не являющимися администраторами, устанавливать обновления. Если вы измените это значение на 0, то только администраторы смогут устанавливать обновления.

Target Groups

Одна из замечательных вещей с WSUS заключается в том, что он позволяет использовать позиционирование клиентской стороны (client side targeting). Идея с позиционированием клиентской стороны заключается в том, что вы можете задавать различные компьютерные группы, и раздавать права на установку обновлений в зависимости от членства в группе. По умолчанию позиционирование клиентской стороны не используется, но если вы решите использовать его, то существуют два ключа реестра, которые помогут вам это сделать. Первый из этих ключей включает позиционирование клиентской стороны (client side targeting), а другой указывает название группы, к которой принадлежит компьютер. Оба из этих ключей должны быть созданы в: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\

Первый ключ – это DWORD ключ под названием TargetGroupEnabled. Вы можете присвоить этому ключу значение 0, тем самым отключив client side targeting, или 1, что включает позиционирование клиентской стороны (client side targeting).

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

Установка сервера WSUS

Если вы немного были вовлечены в работу с сетью, то вы, вероятно, знаете, что дизайн сети имеет тенденцию изменяться со временем. Такие вещи, как рост компании, новые требования к безопасности и корпоративные ограничения, часто лежат в основе для изменения сети. А как это касается обновления Windows? WSUS масштабируем и может устанавливаться иерархическим способом. Это значит, что в организации может быть несколько установленных серверов WSUS. Если PC перемещен в другую часть компании, то сервер WSUS, который изначально был определен для этого компьютера, может больше не подходить для нового места. К счастью, несколько простых модификаций реестра помогут изменить сервер WSUS, от которого PC получает обновления.

Есть два ключа, которые используются для определения сервера WSUS. Каждый из них расположен в: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\. Первый ключ называется WUServer. Для этого ключа необходимо задать текстовое значение, описывающее URL сервера WSUS (например: http://servername).

Другой ключ, который вы должны изменить – это ключ под названием WUStatusServer. Идея с этим ключом заключается в том, что компьютер (PC) должен сообщать о своем статусе серверу WSUS таким образом, чтобы сервер WSUS мог знать, какие изменения были установлены на компьютере. Ключ WUStatusServer обычно содержит точное такое же значение, как и ключ WUServer (например: http://servername).

Агент автоматического обновления (Automatic Update Agent)

Итак, я рассказал о том, как подключить компьютер (PC) к определенному серверу WSUS или для определенной группы (target group), но это только половина процесса. Обновление Windows Update использует агент обновления (update agent), который в действительности устанавливает обновления. Есть несколько ключей реестра, которые располагаются в HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU и контролируют агента автоматического обновления (automatic update agent).

Первый из этих ключей – это ключ AUOptions. Этому DWORD параметру может быть присвоено значение 2, 3, 4 или 5. Значение 2 значит, что агент должен уведомлять пользователя при загрузке обновлений. Значение 3 значит, что обновление будет загружено автоматически, а пользователю будет сообщено об установке. Значение 4 значит, что обновление должно быть автоматически загружено и установлено в соответствии с планом. Для того, чтобы работала эта опция, необходимо также установить значения для ключей ScheduledInstallDay и ScheduledInstallTime. Подробнее я расскажу об этих ключах позднее. И наконец, значение 5 означает, что автоматическое обновление требуется, но он может быть настроено конечными пользователями.

Следующий ключ, о котором я хочу поговорить – это ключ AutoInstallMinorUpdates. Это ключ может принимать значения 0 или 1. Если значение ключа 0, то незначительные обновления (minor updates) обрабатываются также как и любые другие обновления. Если значение ключа 1, то незначительные обновления (minor updates) тихо устанавливаются в фоновом режиме.

Другой ключ, относящийся к агенту автоматического обновления (Automatic Update Agent) – это ключ DetectionFrequency. Этот ключ позволяет вам задать, как часто агент должен обращаться за обновлениями. Значением ключа должно быть целое число от 1 до 22, что отражает количество часов между попытками обращения за обновлением.

Связанный с ним ключ реестра – это ключ DetectionFrequencyEnabled. Как видно из названия, этот ключ позволяет подключить или отключить функцию Detection Frequency. Если установить значение этого ключа равным 0, то значение ключа DetectionFrequency будет игнорироваться, а если установить значение ключа равным 1, то агент должен будет использовать значение ключа DetectionFrequency.

Следующий ключ, о котором я хочу рассказать – это ключ NoAutoUpdate. Если значение этого ключа 0, то автоматическое обновление подключено. Если значение ключа равно 1, то автоматическое обновление отключено.

Последний ключ реестра, о котором я хочу поговорить – это ключ NoAutoRebootWithLoggedOnUsers. Как вы, вероятно, знаете, некоторые обновления не могут вступить в силу без перезагрузки системы. Если пользователь в это время работает, то перезагрузка может быть очень нежелательной. Это особенно верно, если пользователь отошел от своего рабочего места и не сохранил свою работу. В этом случае поможет ключ NoAutoRebootWithLoggedOnUsers. Значение этого ключа может быть 0 или 1. Если значение ключа равно 0, то пользователи получат 5 минутное предупреждение перед тем, как система автоматически уйдет на перезагрузку. Если значение ключа равно 1, то пользователи просто получат сообщение, в котором спрашивается разрешение на перезагрузку, но пользователи могут осуществить его на свое усмотрение.

Заключение

Существует гораздо больше ключей реестра, касающиеся обновления Windows. Об остальных из них я расскажу во второй части этой статьи.

www.windowsnetworking.com


Смотрите также:

Readers Comments (Комментариев нет)

Exchange 2007

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Проведение мониторинга Exchange 2007 с помощью диспетчера System ...

Введение В этой статье из нескольких частей я хочу показать вам процесс, который недавно использовал для перехода с существующей среды Exchange 2003 ...

Если вы пропустили первую часть этой серии, пожалуйста, прочтите ее по ссылке Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (Часть...

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Мониторинг Exchange 2007 с помощью диспетчера System Center Operations ...

Эта статья объединяет известные мне способы починки агента WSUS.

1. Первый скрипт самый простой, и, на самом деле, даже не для лечения используется, а для того, чтобы принудительно запустить проверку на обновление, ну и, заодно, чистит папку, в которой накапливаются дистрибутивы уже установленных обновлений:

wsus_detect_manual.cmd

net stop wuauserv && net stop bits && net stop cryptsvc

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%\SoftwareDistribution\download\*.*

ren %systemroot%\System32\Catroot2 Catroot2.old
ren %systemroot%\SoftwareDistribution SoftwareDistribution.old

REM del /f /s /q %windir%\SoftwareDistribution\*.*

del /f /s /q %windir%\windowsupdate.log

%windir%\system32\regsvr32.exe /U /s %windir%\system32\vbscript.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\mshtml.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\msjava.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\msxml.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\actxprxy.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\shdocvw.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\wintrust.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\initpki.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\dssenh.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\rsaenh.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\gpkcsp.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\sccbase.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\slbcsp.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\cryptdlg.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\Urlmon.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\Oleaut32.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\msxml2.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\Browseui.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\shell32.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\Mssip32.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\atl.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\jscript.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\msxml3.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\softpub.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\wuapi.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\wuaueng.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\wuaueng1.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\wucltui.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\wups.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\wups2.dll
%windir%\system32\regsvr32.exe /U /s %windir%\system32\wuweb.dll

%windir%\system32\regsvr32.exe /s %windir%\system32\vbscript.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\mshtml.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\msjava.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\msxml.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\actxprxy.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\shdocvw.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\wintrust.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\initpki.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\dssenh.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\rsaenh.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\gpkcsp.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\sccbase.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\slbcsp.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\cryptdlg.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\Urlmon.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\Oleaut32.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\msxml2.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\Browseui.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\shell32.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\Mssip32.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\atl.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\jscript.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\msxml3.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\softpub.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\wuapi.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\wuaueng.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\wuaueng1.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\wucltui.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\wups.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\wups2.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\wuweb.dll

net start bits
net start wuauserv
net start cryptsvc

wuauclt /detectnow

exit

3. Этот скрипт применяется в тех случаях, когда компьютер был недавно клонирован, или в тех, когда регистрации в WSUS у компьютера так и не произошло. Он отличается от предыдущего только предпоследней строчкой, в которой производится обнуление авторизации с перегенерацией идентификатора. Приведу только эту строчку:

wsus_resetaut_detect_manual.cmd

wuauclt.exe /resetauthorization /detectnow

AU_Clean_SID.cmd

@echo on
net stop wuauserv
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
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

Все эти скрипты можно выполнять практически автоматически, в случае возникновения проблем. Если в результате проблема таки не решена, то приходится разбираться уже плотнее. И тут нам пригодится тот самый windowsupdate.log, который лежит в корне папки Windows. Если компьютер проблемный, то файл этот большого размера. Для простоты, желательно его удалить перед тем как запускать скрипты. Почти во всех скриптах предусмотрена команда его удаления, но не все так просто. Не смотря на остановку сервиса wuauserv, обычно, его продолжают держать открытые IE и т.п. Поэтому, есть хитрый способ. Запускаю

notepad.exe %windir%\windowsupdate.log

Выделяю весь текст, удаляю его и сохраняю вместо старого файла (не забыть в диалоге сохранения поменять тип файла на *.*, а то по умолчанию – *.txt)

Стоит заметить, что есть случаи, когда заставить клиента обновляться со wsus так и не получается. У меня есть прецеденты с парочкой Windows Server 2003 R2, которые мне побороть так и не удалось. Поэтому я их обновляю через интернет:-)

Свежие операционные системы типа Windows 7, Windows 2008 иногда “заводятся” с трудом. Для таких случаев, эмпирическим путем, был найден алгоритм типа:
1. Обновляемся первый раз с сайта microsoft с обновлением агента
2. Потом обновляем агента уже локально
3. А потом все начинает работать

Надеюсь, что плоды наших трудов кому-нибудь помогут.

Для простоты, выкладываю все эти скрипты в уже готовом виде:

Всем привет сегодня заметка больше для себя, а именно список серверов Обновлений Windows Update. Для чего это может пригодиться, ну например если вы получили ошибку Обновление не найдено при установке WSUS роли, или наоборот по какой то причине хотите их забанить, для экономии трафика, если у вас нет WSUS, так как не все обновления Windows хорошие и особенно в современных ее версиях, думаю нет смысла напоминать про ошибку , хотя этот список можно продолжать очень долго. Причина не важна, главное чтобы знать, что такое есть и с этим можно как то работать. Ниже я вам покажу методы запрета адресов сервера обновлений microsoft, как универсальный, подходящий для отдельного компьютера, так и для централизованного управления в рамках предприятия.

Почему не устанавливаются обновления Windows

Вот скриншот ошибки если у вас недоступен адрес сервера обновлений microsoft. Как видите ошибка мало информативна. Ее я получаю на сервере несущим роль WSUS, кто не помнит, что это такое, то это локальный центр обновлений для предприятий, для экономии трафика, и вот тут как раз не устанавливаются обновления Windows по причине, не доступности серверов Microsoft.

Что делать если не ставятся обновления Windows

  • Первым делом вы должны проверить есть ли у вас интернет, так как его наличие обязательно для большинства людей, если конечно у вас не домен Active Directory и вы их скачиваете с вашего WSUS
  • Далее если интернет есть, смотрим код ошибки, так как именно по нему нужно уже искать информацию о решении проблемы (из последних проблем могу привести пример, как решается Ошибка 0x80070422 или Ошибка c1900101), но список можно так же вести очень долго.
  • Проверяем у себя на прокси сервере, нет ли запрета до вот таких адресов сервера обновлений microsoft.

Сам список серверов обновлений microsoft

  1. http://windowsupdate.microsoft.com
  2. http://*.windowsupdate.microsoft.com
  3. https://*.windowsupdate.microsoft.com
  4. http://crl.microsoft.com/pki/crl/products/MicProSecSerCA_2007-12-04.crl
  5. http://*.update.microsoft.com
  6. https://*.update.microsoft.com
  7. http://*.windowsupdate.com
  8. https://activation.sls.microsoft.com/
  9. http://download.windowsupdate.com
  10. http://download.microsoft.com
  11. http://*.download.windowsupdate.com
  12. http://wustat.windows.com
  13. http://ntservicepack.microsoft.com
  14. https://go.microsoft.com/
  15. http://go.microsoft.com/
  16. https://login.live.com
  17. https://validation.sls.microsoft.com/
  18. https://activation-v2.sls.microsoft.com/
  19. https://validation-v2.sls.microsoft.com/
  20. https://displaycatalog.mp.microsoft.com/
  21. https://licensing.mp.microsoft.com/
  22. https://purchase.mp.microsoft.com/
  23. https://displaycatalog.md.mp.microsoft.com/
  24. https://licensing.md.mp.microsoft.com/
  25. https://purchase.md.mp.microsoft.com/