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

    Welche Funktionen soll eine Lösung für das Management mobiler Geräte (EMM) beherrschen? Kostenlose Check-Liste von baramundi herunterladen »

    (Anzeige)

    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.

    Fälligen Reboot für Remote-PCs ermitteln

    Die hier gezeigten Beispiele beziehen sich immer auf den lokalen PC, wobei sich die PowerShell-Kommandos auch remote ausführen ließen. Jedoch wird man in diesem Fall wahrscheinlich gleich mehrere Rechner überprüfen wollen, so dass sich hier der Einsatz eines Scripts lohnt.

    Ein solches gibt es kostenlos auf Microsofts TechNet Gallery von Sandro Pereira. Dieses berichtet nicht nur über den anstehenden Reboot auf mehreren Maschinen, sondern listet auch die damit zusammenhängenden Updates auf. Auf Wunsch kann man sich diese Informationen auch per Mail schicken lassen.

    1 Kommentar

    Bild von EH
    EH sagt:
    6. Juli 2016 - 14:46

    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).