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

Тема в разделе "Windows", создана пользователем Горбушка, 8 июл 2015.

Модераторы: ADMiNZ
  1. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.036
    Симпатии:
    2.037
    Всем привет!

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

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

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

    Гугл меня уже послал...
     
  2. lag

    lag

    Регистр.:
    13 окт 2014
    Сообщения:
    188
    Симпатии:
    227
    В справке упоминаются пару ключей реестра
    https://support.microsoft.com/en-us/kb/832475/ru
    Для того чтобы указать на необходимость перезагрузки после установки или удаления обновлений системы безопасности, важных обновлений или исправлений, в параметре реестра
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\UpdateExeVolatile
    устанавливаются флаги.


    Другой параметр реестра, который можно использовать для определения необходимости перезагрузки, это
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations
    https://technet.microsoft.com/ru-ru/library/cc164360(v=exchg.80).aspx
     
    Горбушка нравится это.
  3. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.036
    Симпатии:
    2.037
    На самом деле, определить оказалось намного проще...

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

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