Ausstehende Reboots nach Updates prüfen mit PowerShell und reg.exe


    Tags: , , ,

    Windows macht auf einen bevorstehenden Neustart aufmerksam.Die meisten Windows-Updates erfordern einen Neustart des Systems. Während dieser auf dem Client per Voreinstellung automatisch erfolgt und der Benutzer ausgiebig darauf hingewiesen wird, sind die Verhältnisse auf dem Server nicht immer so offensichtlich. Will man sich Klarheit über anstehende Reboots verschaffen, dann kann man dies (besonders unter Server Core) via Kommandozeile tun.

    Ein wesentlicher Grund, warum man über anstehende Neustarts informiert sein möchte, besteht darin, dass sich weitere Updates nicht installieren lassen, solange die vorhergehenden nicht durch einen Reboot wirksam wurden. Da ein automatischer Neustart auf dem Server meistens unerwünscht ist, kann somit einige Zeit verstreichen, bis die installierten Patches den Rechner schützen.

    Update-Informationen in der Registry

    Windows verfügt über kein Tool, das Informationen über ausstehende Updates und notwendige Reboots informiert. Es verwaltet diese Daten jedoch über die Registry, so dass man nur die entsprechenden Schlüssel auslesen muss, um Bescheid zu wissen. Sie informieren nicht nur darüber, ob ein Neustart fällig ist, sondern auch wann dieser automatisch erfolgt und welche Updates damit wirksam werden.

    Der Subkey RebootRequired informaiert auch über die Uhrzeit des ausstehenden Reboots.

    Allerdings sind diese Daten seit Vista über zwei verschiedene Zweige der Registrierungsdatenbank verstreut, so dass man die benötigten Einzelheiten unter Umständen an verschiedenen Orten zusammenklauben muss.

    Schlüssel RebootRequired auslesen

    Der schon unter XP genutzte Speicherort für Infos zu Windows Update ist unter HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate. Hier finden sich mehrere Subkeys, die unter anderem über einen fälligen Neustart, die dafür verantwortlichen Updates oder die Uhrzeit für den automatischen Reboot anzeigen.

    Die PowerShell-Sicht auf den Schlüssel RebootRequired.

    Sie lassen sich allesamt mit einem PowerShell-Befehl abrufen:

    Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired"

    Wer Berührungsängste mit PowerShell hat, kann das äquivalente Kommando für reg.exe nutzen:

    reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired"

    Wenn keine Updates und damit auch kein Neustart anstehen, dann existiert dieser Schlüssel nicht. Wenn man daher nur wissen möchte, ob ein Reboot erforderlich ist, dann würde auch dieses Kommando reichen:

    Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired"

    RebootPending als Alternative

    Der mit Vista eingeführte Key enthält weitgehend redundante Informationen und lässt sich mit PowerShell nach dem gleichen Muster abfragen:

    Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\"

    Falls ein Neustart ansteht, dann existiert dort ein Schlüssel namens RebootPending. Diesen kann man wieder direkt mit Test-Path prüfen:

    Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending"

    Die einfachste Art, um einen fälligen Reboot zu ermitteln, nutzt Test-Path.

    In diesem Zweig der Registry erhält man aber keine Auskunft über die geplante Zeit eines automatischen Neustarts. Dafür zeigt er unter DelayedPackages die Namen der zu installierenden Updates an, die man unter Auto Update nicht sieht.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Wolfgang Sommergut
    Wolfgang Sommergut hat lang­jährige Erfahrung als Fach­autor, Berater und Kon­ferenz­sprecher zu ver­schie­denen Themen der IT. Da­ne­ben war er als System­ad­mi­ni­stra­tor und Con­sultant tätig.
    // Kontakt: E-Mail, XING, LinkedIn //

    Verwandte Beiträge

    Weitere Links

    1 Kommentar

    Vielen Dank, hat sehr geholfen!
    Möchte das Skript auf dem betroffenen System laufen lassen, eine Textdatei auf einer Freigabe erzeugen und von Nagios abholen lassen und auswerten (Skript-Ausführung durch NCAP wurde aufgrund von Sicherheitsbedenken verboten).