[Server] Программно получить статус необходимости перезагрузки после обновления

Горбушка

Ищу её...
Регистрация
2 Май 2008
Сообщения
3.444
Реакции
2.524
Всем привет!

Имеем огромную группу серверов Windows Server 2003, 2008, 2012 (если версии не путаю). Как все знают, мелкомягкие постоянно патчат своё решето, ну или делают вид. что патчат... Беда в том, что в отличии от Linux, где даже ядро можно пересобрать без ребута, винда даже обои рабочего стола примитивные обновления без ребута ставить не умеет...

Т.к. день, в который эта зараза захочет обновиться, мне доподленно неизвестно, мне нужно программно (через cmd/wmi и топу подобные консольные утилиты) получить текущий статус системы...

Что интересует:
Требуется ли перезагрузка?
Есть ли неустановленные обновления?

Гугл меня уже послал...
 
В справке упоминаются пару ключей реестра
Для просмотра ссылки Войди или Зарегистрируйся
Для того чтобы указать на необходимость перезагрузки после установки или удаления обновлений системы безопасности, важных обновлений или исправлений, в параметре реестра
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\UpdateExeVolatile
устанавливаются флаги.


Другой параметр реестра, который можно использовать для определения необходимости перезагрузки, это
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations
Для просмотра ссылки Войди или Зарегистрируйся
 
На самом деле, определить оказалось намного проще...

На всех серверах после прихода обновления, в процессах появляется TrustedInstaller.exe
Соответственно, опрашивая сервер на предмет наличия TrustedInstaller можно определить необходимость его перезагрузки.

Т.к. обновления приходят в определённый день, а технологическое окно идёт следом не сразу, а с задержкой минимум в пару дней, этого вполне достаточно. За это время гарантировано обновление установится, а неприбитый процесс будет говорить о том, что после обновления сервер ещё не перезапускался.
 
Назад
Сверху