пятница, 29 ноября 2013 г.

Проблемы отсутствия в консоли WSUS клонированных или установленных из образа Windows XP/2003 систем

Данная проблема происходит из-за того, что при выполнении sysprep ОС Windows старших поколений (до Vista/2008) значение SusClientId не удаляется. Соответственно ID не может быть сгенерирован заново из уже обновленного SID, что приводит к дублированию идентификаторов и некорректной работе ОС с сервером WSUS.

Для решения проблемы следует использовать данный cmd-скрипт:


net stop wuauserv
rd /S /Q %WinDir%\SoftwareDistribution
reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v LastWaitTimeout /f
reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v DetectionStartTime /f
reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v NextDetectionTime /f
reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SusClientId /f
reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v PingID /f
reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v AccountDomainSid /f
reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SusClientIDValidation /f
net start wuauserv
wuauclt /resetauthorization /detectnow


Чтобы в дальнейшем исключить проблему дублирования SusClientId, создаём текстовый файл Sysprep.inf в каталоге с Sysprep.exe (команды будут выполняться при распаковке образа) следующего содержания:


[GuiRunOnce]
Command0="reg.exe delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v PingID /f"
Command1="reg.exe delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v AccountDomainSid /f"
Command2="reg.exe delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v SusClientId /f"
Command3="reg.exe delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v SusClientIDValidation /f"


Для поиска и исправления проблемных компьютеров в домене можно использовать следующий скрипт:


@echo off
setlocal ENABLEEXTENSIONS
set KEY_NAME=HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate
set VALUE_NAME=SusClientId
for /F "usebackq tokens=3" %%A IN (`reg query "%KEY_NAME%" /v "%VALUE_NAME%" 2^>nul ^| find "%VALUE_NAME%"`) do (
if not "%%A"=="30dd6c6d-b444-4b98-802b-0d35a28bca51" (
if not "%%A"=="30dd6c6d-b444-4b98-802b-0d35a28bca52" (
if not "%%A"=="30dd6c6d-b444-4b98-802b-0d35a28bca53" (
if not "%%A"=="30dd6c6d-b444-4b98-802b-0d35a28bca54" (
if not "%%A"=="30dd6c6d-b444-4b98-802b-0d35a28bca55" (
if not "%%A"=="30dd6c6d-b444-4b98-802b-0d35a28bca56" (
exit
))))))
net stop wuauserv
rd /S /Q %WinDir%\SoftwareDistribution
reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v LastWaitTimeout /f
reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v DetectionStartTime /f
reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v NextDetectionTime /f
reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SusClientId /f
reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v PingID /f
reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v AccountDomainSid /f
reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SusClientIDValidation /f
net start wuauserv
wuauclt /resetauthorization /detectnow
)


В нём необходимо перечислить ваши дублирующиеся SusClientId и установить на выполнение в автозагрузку групповыми политиками домена.

Комментариев нет:

Отправить комментарий