Wie man Computer mit anstehendem Neustart mithilfe von PowerShell identifiziert

Nach der Installation bestimmter Patches oder Sicherheitsupdates unter Windows ist oft ein Neustart erforderlich, damit die Änderungen wirksam werden. Wenn Sie diesen Neustart immer wieder hinauszögern oder automatische Neustarts deaktiviert sind – insbesondere auf Servern oder in Unternehmensumgebungen, die über Gruppenrichtlinien konfiguriert wurden –, kann es passieren, dass Ihr System zwar Updates installiert, diese aber nicht angewendet werden. Dieser ausstehende Neustart kann viele Probleme verursachen, beispielsweise wenn Updates als endlos wartend angezeigt werden oder ungewöhnliche Systemfunktionen auftreten. Daher ist es äußerst hilfreich zu wissen, wie man herausfindet, welche Computer nach Updates tatsächlich auf einen Neustart warten. Gerade wenn Sie viele Server oder Workstations verwalten, kann das Erkennen dieser ausstehenden Neustarts viel Zeit sparen.

In einem kürzlich aufgetretenen Fall zeigte ein Windows Server zwar installierte Updates an, hatte aber noch keinen automatischen Neustart durchgeführt. Im Update-Statusfenster stand „Neustart ausstehend“, doch ein einfacher Klick auf „Neustart“ reichte aus irgendeinem Grund nicht aus. Daher suchte ich nach Skripten und Befehlen, um die Ursache zu finden. Es stellte sich heraus, dass das Microsoft- Modul „PendingReboot“ aus der PowerShell Gallery anzeigen kann, ob ein System auf einen Neustart wartet. Es ist etwas ungewöhnlich, funktioniert aber recht gut, sogar auf Remote-Rechnern mit aktivierter PowerShell-Remoteverbindung.

So prüfen Sie unter Windows, ob ein Computer neu gestartet werden muss

Methode 1: Verwenden Sie das PendingReboot PowerShell-Modul

Die Installation dieses Moduls ist unkompliziert und reduziert manuelle Prüfungen erheblich, insbesondere in Netzwerken. Führen Sie dazu einfach folgenden Befehl in einer PowerShell-Eingabeaufforderung mit Administratorrechten aus:

Install-Module -Name PendingReboot

Bei manchen Konfigurationen müssen Sie möglicherweise zuerst die Ausführungsrichtlinie festlegen Set-ExecutionPolicy RemoteSigned -Scope CurrentUser. Keine Sorge, nur ein Hinweis. Nach der Installation können Sie schnell überprüfen, ob ein lokaler Rechner neu gestartet werden muss:

Test-PendingReboot

Dieser Befehl gibt „Wahr“ oder „Falsch“ aus – bei „Wahr“ muss der Rechner neu gestartet werden. Für detailliertere Informationen fügen Sie Folgendes hinzu -Detailed:

Test-PendingReboot -Detailed

Es zeigt Ihnen genau an, was die Verzögerung verursacht – ob es sich um ein ausstehendes Windows-Update, Wartungsarbeiten an einer Komponente oder andere Gründe handelt. Meistens funktioniert dies auch für Remote-Rechner mit einem einfachen Befehl Invoke-Command. Müssen Sie einen Server remote überprüfen? Versuchen Sie Folgendes:

Invoke-Command -ComputerName m-dc01 -ScriptBlock {Test-PendingReboot}

Hinweis: Damit dies funktioniert, muss PowerShell-Remoting auf dem Zielrechner aktiviert und konfiguriert sein.

Methode 2: Registrierungsschlüssel manuell prüfen

Wenn Sie PowerShell-Module überspringen möchten oder Probleme damit haben, ist ein Blick in die Registrierung eine gute Alternative. Bestimmte Registrierungsschlüssel deuten auf notwendige Neustarts hin:

  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending
  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired
  • HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations
  • HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations2

Um dies zu überprüfen, können Sie Befehle wie die folgenden ausführen:

Get-Item 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired' -ErrorAction SilentlyContinue

Wenn dieser Registry-Eintrag existiert, geht Windows davon aus, dass ein Neustart weiterhin erforderlich ist. Kein Wunder, dass es Sie ständig dazu auffordert.

Hier ist eine kurze PowerShell-Funktion, die eine Reihe dieser Registry-Prüfungen zusammenfasst – sozusagen eine zentrale Anlaufstelle für den Neustartstatus:

function Get-PendingReboot { param([string[]]$ComputerName = "localhost") foreach ($Computer in $ComputerName) { $HKLM = [Microsoft. Win32. RegistryKey]::OpenRemoteBaseKey('LocalMachine', $Computer) $CBS = $HKLM. OpenSubKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending') $WU = $HKLM. OpenSubKey('SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired') $SM = $HKLM. OpenSubKey('SYSTEM\CurrentControlSet\Control\Session Manager') $Rename = $SM. GetValue('PendingFileRenameOperations') $Rename2 = $SM. GetValue('PendingFileRenameOperations2') [PSCustomObject]@{ Computer = $Computer RebootNeeded = [bool]($CBS -or $WU -or $Rename -or $Rename2) } } }

In einem Netzwerk half die Ausführung dieses Tools, eine Reihe von Rechnern mit ausstehenden Neustarts zu identifizieren, die sonst unbeachtet geblieben wären. Wichtig: Für die Funktionsfähigkeit müssen der Remote-Zugriff auf die Registrierung und die Remote-Verbindung aktiviert sein und einwandfrei funktionieren.

Und falls Windows nach fehlgeschlagenen Update-Installationen immer wieder zum Neustart auffordert, sollten Sie die ausstehenden Updates manuell abbrechen oder zurücksetzen, um Neustartschleifen zu vermeiden. Normalerweise hilft es, den Cache zu leeren oder die entsprechenden Registry-Einträge manuell zu entfernen – aber das ist eine andere Geschichte.

Zusammenfassend lässt sich sagen, dass diese Methoden es deutlich erleichtern, den Überblick darüber zu behalten, welche Systeme einen Neustart benötigen, um unerwartete Update-Probleme zu vermeiden und einen reibungslosen Betrieb zu gewährleisten. Die altbekannte Geschichte von „Updates installiert, aber kein Neustart erforderlich“ ist zwar ärgerlich, doch diese Tricks sind, sobald man sie einmal verstanden hat, recht zuverlässig.

Zusammenfassung

  • Installieren Sie das PowerShell-Modul PendingReboot, um den Neustartstatus zu überprüfen.
  • Verwenden Sie Befehle wie diese Test-PendingRebootfür schnelle Gesundheitschecks.
  • Prüfen Sie die Registrierungsschlüssel, falls Module keine Option sind.
  • Verwenden Sie PowerShell-Remoting (mit Invoke-Command), um schnell auf entfernte Rechner zuzugreifen.

Zusammenfassung

Hoffentlich erleichtert das Wissen, wie man anstehende Neustarts erkennt, die Systemverwaltung. Diese Techniken eignen sich gut für eine schnelle Überprüfung mehrerer Geräte – manchmal geht es einfach nur darum, die Updates zu erkennen, die nicht vollständig abgeschlossen wurden. Ich drücke die Daumen, dass dies Ihren Update-Prozess optimiert!