вторник, 15 ноября 2022 г.

MSError Ошибка 80244019 на клиентах WSUS

 Сдох WSUS на базе WinSrv 2008R2, решили передать роль новому WinSrv2019.

Установил, изменил запись DNS, чтобы имя сервера обновлений передаваемое через GPO не менять. Клиенты в консоли появляться не стали, пробовал выполнять сброс wuauclt /resetauthorization и wuauclt /detectnow, ноль внимания, при этом на всех ПК при попытке запустить поиск выскакивает ошибка 80244019. Начал копать:

  • проверил что реестре сервер указан правильно (HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate)
  • проверил что имя резолвится, указывал не полное имя без домена
  • Поменял имя в записях DNS и в настройках GPO (с wsus на wsus2)
  • Проверил настройку WSUS что тачки падают в группы сразу (консоль WSUS - параметры -компьютеры- использовать на компьютерах групповую политику или параметры реестра)
  • Проверил в GPO куда складываются компьютеры (Разрешить клиенту присоединение к целевой группе)
  • открыл лог на стороне клиента и увидел забавную строчку:
    WARNING: DownloadFileInternal failed for http://wsus2/selfupdate/wuident.cab: error 0x80190194
Собственно тут пошел проверять и действительно, браузер возвращает 404. Поясню, я не переделывал с нуля, поэтому не обратил внимание на отсутствие порта в "Указать размещение службы  обновлений Майкрософт в интрасети". Проверил что файл скачивается с портом 8530, исправил политику и поиск запустился и тачки начали появляться в консоли WSUS


Далее примитивный скрипт обновления политик и перезапуска регистрации на сервере WSUS, не без изъянов, но в моем случае его достаточно, чтобы по быстрому увидеть изменения в консоли WSUS

В цикле обходятся ip адреса от 10.21.2.1 до 10.21.2.255 и запускается на них при помощи psexec скрипт с двумя простыми командами. Если есть новый Powershell, то там в теории возможен запуск в несколько потоков. Можно и ручками в разных окнах с разными диапазонами

Пишется одной строкой прямо в консоли

foreach ($_ in 1..255) {
	$testIP="10.21.2.$_";
	if ($(Test-Connection $testIP -Count 1 -Quiet)) {
		C:\usr\psexec.exe \\$testIP -c "\\wsus2\sc\resetWsus.cmd" ;
        echo "$testIP ok"
    }
	else {
    	echo "$testIP not"
    }
}

resetWsus.cmd

@echo off
echo __________________________________
echo %computername%
gpupdate /force > C:\usr\gpoUpdate.log && echo GPO OK || echo GPO NOT
wuauclt /resetauthorization /detectnow /reportnow && echo WUA OK
echo __________________________________
exit /b 0

echo WUA - не имеет смысла более, чем просто запись о выполнении, т.к. wuauclt не имеет вывода, вообще никакого. Единственное доказальство работы - при параметре /reportnow - обновление отчета в консоли и то не сразу


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

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