Сервер WSUS отображает несколько компьютеров как один

Ответить


Этот вопрос предназначен для предотвращения автоматической отправки форм спам-ботами.
Смайлики
:| :) :wink: :D :lol: :( :cry: 8) :o :oops: :? :x :P :evil: :twisted: :roll: :!: :?: :idea: :arrow: :mrgreen:
Ещё смайлики…

Markdown is OFF

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ВКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Сервер WSUS отображает несколько компьютеров как один

Сервер WSUS отображает несколько компьютеров как один

UncleFather » 28 дек 2016 08:12, Ср

Проблема:

Клонированные компьютеры отображаются на сервере WSUS по очереди как один компьютер.

При этом, естественно, меняется имя отображаемого ПК и его данные.


Объяснение:

Компьютеры клонировались без предварительной подготовки утилитой Sysprep, вследствие чего идентификаторы WSUS клиента на всех этих компьютерах были одинаковые.


Решение:

На всех клонированных компьютерах необходимо удалить идентификатор WSUS клиента. Он вновь создастся автоматически при очередном обновлении Windows, но теперь уже уникальный для каждого компьютера.

Для этого на каждом клонированном ПК нужно выполнить скрипт:

Код: Выделить всё

rem === Останавливаем службу Windows Update
net stop wuauserv
rem === Удаляем идентификационные данные клиента Windows Update
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 SusClientId /f
reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v SusClientIDValidation /f
rem === Удаляем файловый кэш клиента Windows Update
del /f /s /q %WinDir%\SoftwareDistribution\*
rem === Запускаем службу Windows Update
net start wuauserv
rem === Вызываем форсированную перерегистрацию клиента Windows Update
wuauclt.exe /resetauthorization /detectnow

Скрипт в архиве качаем здесь:

WSUS_ReRegister.rar
(1016 байт) 519 скачиваний

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

Скрипт взят из статьи WSUS и клонированная ОС Windows с сайта техподдержки Microsoft.

Подробнее проблема и ее решение описаны в статье Компьютер под управлением Windows 2000,Windows Server 2003 или Windows XP, настроенный с помощью образа Windows 2000, Windows Server 2003 или Windows XP, не отображается в консоли WSUS (KB903262) на сайте Microsoft.


Дополнение:

В случае, когда имеется несколько компьютеров в домене AD, на которых необходимо изменить идентификаторы WSUS клиента, это действие можно автоматизировать при помощи двух скриптов - cmd и vbs. Например, для списка компьютеров Comp210,Comp215,Comp223,Comp224,Comp225,Comp228,Comp230,Comp233,Comp235,Comp236,Comp237 скрипт будет такой (комментарии в коде):

командный файл bat/cmd:

Код: Выделить всё

REM Отключаем вывод команд на экран
@echo off

REM Устанавливаем значения переменных среды
setlocal ENABLEEXTENSIONS
SetLocal EnableDelayedExpansion

REM Начинаем запись журналов выполнения в отдельных файлах для компьютеров, которые доступны в сети, и для компьютеров, которые недоступны
Echo. >> Unreacheable_PCs.txt
Echo ################################### Starting %Date% %Time% ################################### >> Unreacheable_PCs.txt
Echo. >> Done_PCs.txt
Echo ################################### Starting %Date% %Time% ################################### >> Done_PCs.txt
REM Перебираем все компьютеры из списка
for %%i in (Comp210,Comp215,Comp223,Comp224,Comp225,Comp228,Comp230,Comp233,Comp235,Comp236,Comp237) do (
    REM Устанавливаем значение переменной
    set CompName=%%i
    REM Переходим к блоку списка действий с компьютером
    call :WhatToDo
)
REM В конце работы дописываем в файлы журналов сведения об окончании работы скрипта
Echo #################################### Ending %Date% %Time% #################################### >> Unreacheable_PCs.txt
Echo #################################### Ending %Date% %Time% #################################### >> Done_PCs.txt
REM Переходим в конец файла (выход)
goto :eof

REM Начало блока списка действий с компьютером
:WhatToDo
REM Проверяем доступность хоста по сети
ping -n 1 %CompName% | find "TTL="> TmpPng
REM Если хост недоступен
if %errorlevel%==1 (
	REM Выводим сообщение и записываем имя недоступного компьютера в журнал
	echo %CompName% is unreacheable
	Echo %CompName% >> Unreacheable_PCs.txt
) Else (
	REM Если хост доступен
	REM Выводим сообщение и записываем имя компьютера, с которым работаем в журнал
	echo working with %CompName%
	echo. >> Done_PCs.txt
	REM Записываем в журнал начало блока обработки текущего компьютера с указанием времени
	echo ###### Start with %CompName% ###### >> Done_PCs.txt
	REM Устанавливаем тип запуска «Службы обновления Windows» в значение «Отключена»
	sc \\%CompName% config wuauserv start=disabled >> Done_PCs.txt
	REM Устанавливаем тип запуска «Службы фоновой интеллектуальной поддержки (BITS)» в значение «Отключена»
	sc \\%CompName% config bits start=disabled >> Done_PCs.txt
	REM Останавливаем «Службы фоновой интеллектуальной поддержки (BITS)»
	sc \\%CompName% stop bits >> Done_PCs.txt
	REM Останавливаем «Службы обновления Windows»
	sc \\%CompName% stop wuauserv >> Done_PCs.txt
	REM Удаляем ключи реестра, где может содержаться уникальный идентификатор компьютера для служб WindowsUpdate
	reg delete \\%CompName%\HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v PingID /f >> Done_PCs.txt
	reg delete \\%CompName%\HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v AccountDomainSid /f >> Done_PCs.txt
	reg delete \\%CompName%\HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v SusClientId /f >> Done_PCs.txt
	reg delete \\%CompName%\HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v SusClientIDValidation /f >> Done_PCs.txt
	REM Удаляем содержимое папки «SoftwareDistribution»
	del /f /s /q \\%CompName%\c$\Windows\SoftwareDistribution\* >> Done_PCs.txt
	REM Устанавливаем тип запуска «Службы обновления Windows» в значение «Автоматически»
	sc \\%CompName% config wuauserv start=auto >> Done_PCs.txt
	REM Устанавливаем тип запуска «Службы фоновой интеллектуальной поддержки (BITS)» в значение «Автоматически»
	sc \\%CompName% config bits start=auto >> Done_PCs.txt
	REM Запускаем «Службы фоновой интеллектуальной поддержки (BITS)»
	sc \\%CompName% start bits >> Done_PCs.txt
	REM Запускаем «Службы обновления Windows»
	sc \\%CompName% start wuauserv >> Done_PCs.txt
	REM Запускаем скрипт на VBS, выполняющий команду «wuauclt.exe /resetauthorization /detectnow» на удаленном компьютере
	WUAU_Ini.vbs /CompName:%CompName% >> Done_PCs.txt
	REM Записываем в журнал конец блока обработки текущего компьютера с указанием времени
	echo ####### End with %CompName% ####### >> Done_PCs.txt
)
goto :eof

EXIT
VBS скрипт:

Код: Выделить всё

compName = Wscript.Arguments.Named.Item("CompName")
Set objProc = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & compName & "\root\cimv2:Win32_Process")
errCode = objProc.Create("wuauclt.exe /resetauthorization /detectnow", null, null, procID)

Порядок запуска:

  1. Скачиваем и распаковываем архив в одну папку. Получаем два файла: Reset_WSUS_LAN.bat и WUAU_Ini.vbs;

  2. В командном файле Reset_WSUS_LAN.bat изменяем имена в списке компьютеров на имена компьютеров, на которых нужно изменить WSUS ID;

  3. Запускаем командный файл Reset_WSUS_LAN.bat.

Архив со скриптами качаем здесь:

Reset_WSUS_LAN.rar
(2.68 КБ) 185 скачиваний

Для проверки текущего статуса компьютеров, над которыми были проведены вышеописанные действия, можно выполнить скрипт, который позволяет получить новый идентификатор WSUS этих систем, а так же состояние «Службы фоновой интеллектуальной поддержки (BITS)» и «Службы обновления Windows», и параметры их запуска:

Скрипт проверки:

Код: Выделить всё

REM Отключаем вывод команд на экран
@echo off

REM Устанавливаем значения переменных среды
setlocal ENABLEEXTENSIONS
SetLocal EnableDelayedExpansion

REM Перебираем все компьютеры из списка
for %%i in (Comp210,Comp215,Comp223,Comp224,Comp225,Comp228,Comp230,Comp233,Comp235,Comp236,Comp237) do (
    REM Устанавливаем значение переменной
    set CompName=%%i
    REM Переходим к блоку списка действий с компьютером
    call :WhatToDo
)
goto :eof

:WhatToDo
REM Проверяем доступность хоста по сети
ping -n 1 %CompName% | find "TTL="> TmpPng
REM Если хост недоступен
if %errorlevel%==1 (
	echo %CompName% is unreacheable
) Else (
	REM Выводим сообщение и записываем имя компьютера, с которым работаем в журнал
	echo working with %CompName%
	echo. >> RegWSUS.txt
	echo working with %CompName% >> RegWSUS.txt
	REM Получаем ключи реестра, где содержится уникальный идентификатор компьютера для служб WindowsUpdate
	reg query \\%CompName%\HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v SusClientId >> RegWSUS.txt
	REM Получаем состояние «Службы обновления Windows»
	sc \\%CompName% query wuauserv >> RegWSUS.txt
	REM Получаем параметры запуска «Службы обновления Windows»
	sc \\%CompName% qc wuauserv >> RegWSUS.txt
	REM Получаем состояние «Службы фоновой интеллектуальной поддержки (BITS)»
	sc \\%CompName% query bits >> RegWSUS.txt
	REM Получаем параметры запуска «Службы фоновой интеллектуальной поддержки (BITS)»
	sc \\%CompName% qc bits >> RegWSUS.txt
)
goto :eof

EXIT

Скачать скрипт можно здесь:

RegReceive.rar
(1.9 КБ) 181 скачивание

Вернуться к началу