Windows Systemwiederherstellung per Powershell verwalten

16. März 2015

Ob bei defekten Windows-Updates, Softwareproblemen, fehlgeschlagenen Installationen oder Konfigurationsänderungen: Einer der ersten Schritte zur Lösung dieser Probleme lautet seit dem Erscheinen von Windows XP, dass die Systembetreuer als erstes die Systemwiederherstellung heranziehen, um sowohl Symptome als auch Ursachen der Fehler rückgängig zu machen.

Falls Systeme nicht mehr korrekt starten, oder plötzlich seltsame Eigenheiten zeigen, ist in der Regel zunächst zu prüfen, ob es sich um einen Hardware- oder Softwarefehler handelt. Für erstgenannte Möglichkeit stehen unterschiedliche Tools zur Systemanalyse bereit. Diese werden von den Administratoren meist von boot-fähigen Medien wie CD, DVD, oder USB-Stick gestartet, um eine Beeinflussung der Testergebnisse durch ein (eventuell) kompromittierte Betriebssystem (OS) zu vermeiden.

Auch vermeintlich leicht auf Softwareprobleme zurückzuführende Fehler können als zugrundeliegende Ursache einen Defekt im Hardwarebereich aufweisen. Beispielsweise falls direkt nach einem Windows-Updates das System nicht mehr korrekt startet, kann entweder ein Update-Fehler oder etwa auch ein defekter Speicherbereich auf der Festplatte ursächlich sein, der zufälligerweise durch die Schreibvorgänge während des Updates-Vorgangs getroffen wurde.

Bild
Bild 2. Der entsprechende Unterschlüssel in der Registry bietet weitere Stellschrauben zur Konfiguration.

Um jetzt nicht bei jedem kleineren Problem, Symptom oder Fehler sofort eine umfassende Systemdiagnose durchzuführen, eignet sich in diesen Fällen oftmals ein Einsatz der Windows-Systemwiederherstellung. Denn entsprechende Wiederherstellungspunkte vorausgesetzt (Restore Points) drehen die Administratoren auf diese Weise quasi die Zeit zurück, und bringen das System auf den Softwarestand vor der Änderung oder Fehlermeldung. Benutzerdaten werden dabei nicht verändert, die Anwender finden folglich ihre Dokumente, eigenen Daten oder Emails weiterhin auf dem System vor. Lediglich die Konfigurationsänderungen, Programminstallationsänderungen und Registry-Veränderungen werden so rückgängig gemacht.

Bild
Bild 3. Mittels des Cmdlets „Get-ComputerRestorePoint“ zeigen die Administratoren eine Liste der verfügbaren Wiederherstellungspunkte in der Powershell an.

Viele Systembetreuer starten die Systemwiederherstellung mittels der grafischen Oberfläche aus Windows (Bild 1), oder etwa falls ein korrekter Systemstart nicht mehr möglich ist, im abgesicherten Modus. Alternativ stehen den Systembetreuern fünf unterschiedliche Cmdlets zur Verfügung, um die Wiederherstellungsoptionen direkt in der Powershell vorzunehmen:

  • Enable-ComputerRestore
  • Disable-ComputerRestore
  • Checkpoint-Computer
  • Get-ComputerRestorePoint
  • Restore-Computer

Systemwiederherstellung aktivieren oder ausschalten

Mittels der Cmdlets „Enable-ComputerRestore“ und „Disable-ComputerRestore“ schalten die Administratoren die Systemwiederherstellung für bestimmte Laufwerke entweder ein oder aus. Dabei sind die jeweiligen Laufwerksbezeichnungen als Parameter anzugeben, wie folgendes Beispiel zeigt:

Enable-ComputerRestore "C:\", "D:\ "

Dabei ist zu beachten, dass über dieses Cmdlet geregelt wird, auf welchen Laufwerken die Systemwiederherstellung aktiviert werden soll. Laufwerksbezeichnungen die in diesem Befehl nicht berücksichtigt werden (in diesem Beispiel etwa Laufwerk „E“ oder „F“) werden damit automatisch von der Systemwiederherstellung ausgeschlossen.

Bild
Bild 4. Über den Parameter „-confirm:$true“ muss die Durchführung der Wiederherstellung zunächst manuell bestätigt werden.

Das Betrifft auch Laufwerke, die bisher von der Systemwiederherstellung geschützt wurden. Daher ist an dieser Stelle die Angabe der korrekten Laufwerksbuchstaben sehr wichtig. Eine weitere Anlaufstelle für Systemwiederherstellungs-Option ist die Registrierungsdatenbank (Registry). Die wichtigen Zeichenfolgen finden die Systembetreuer in folgenden Unterschlüssel (Bild 2):

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore

Verfügbare Systemwiederherstellungspunkte anzeigen

Mittels des Cmdlets „Get-ComputerrestorePoint“ zeigen die Administratoren alle verfügbaren Wiederherstellungspunkte in der Powershell an (Bild 3). Diese sind deckungsgleich mit den verfügbaren Einträgen der GUI, falls dort die Checkbox „Weitere Wiederherstellungspunkte anzeigen“ aktiviert wird. Wichtige Informationen der PS-Ausgtabe stellen sowohl die beiden Spalten „SequenceNumber“ sowie „RestorePointType“ dar.

Über die SequenceNumber lassen sich die einzelnen Wiederherstellungspunkte eindeutig identifizieren. Diese ID-Nummer wird bei der Wiederherstellung von den Systembetreuern angegeben. Der Wert RestorePointType zeigt den Administratoren auf, welche Aktion das Anlegen des Wiederherstellungspunktes ausgelöst hat (Windows-Update, Anwendungsinstallation, manuell von Benutzern).

Der Parameter „-LastStatus“ ruft den Status des letzten Systemwiederherstellungsvorgangs auf. Oftmals zeigt die Powershell als Ausgabe etwa folgendes an: „Der Computer wurde am angegebenen Wiederherstellungspunkt wiederhergestellt“. Damit ist allerdings nicht unbedingt gemeint, dass dieser Wiederherstellungsvorgang gerade erst angeschlossen wurde. Der erfolgreich abgeschlossene Restore kann durchaus schon einige Zeit zurück liegen.

Systemwiederherstellung starten

Nachdem die Systembetreuer einen passenden Wiederherstellungspunkt identifiziert haben, kann der Restore direkt in der Powershell gestartet werden. Dazu ist folgendes Cmdlet heranzuziehen:

Restore-Computer -RestorePoint <sequencenumber>

Um nun beispielsweise den letzten Systemwiederherstellungspunkt auszuwählen, gehen die Systembetreuer in unserem Beispiel wie folgt vor:

Restore-Computer –RestorePoint 155

Durch die Angabe der SequenceNumber können somit auch weiter zurückliegende Wiederherstellungspunkte herangezogen werden. Alternativ nutzen die Systembetreuer folgendes Cmdlet um den letzten Restore Point unabhängig von der SequenceNumber automatisch auszuwählen und die Systemwiederherstellung durchzuführen:

Restore-Computer -RestorePoint (Get-ComputerRestorePoint)[-1].sequencenumber

Dieser Befehl kombiniert den Restore-Computer-Aufruf mit einer Abfrage des letzten Wiederherstellungspunktes durch das Cmdlet „Get-ComputerRestorePoint“. Über die Zeichenfolge „[-1]“ wählt der Administrator den höchsten (beziehungsweise letzten) Wiederherstellungspunkt aus, eine direkte Angabe der genauen Sequence Number wird auf diese Art nicht benötigt. Allerdings ist an dieser Stelle noch anzumerken, dass dieser Befehl keine weitere Bestätigung erfordert, der Restore wird ohne Nachfrage gestartet. Falls solch eine Bestätigung vom Systembetreuer gewünscht ist, kann folgende Zeichenfolge angefügt werden (Bild 4):

Restore-Computer -RestorePoint (Get-ComputerRestorePoint)[-1].sequencenumber -confirm:$true

Neuen Systemwiederherstellungspunkt anlegen

Möchte der Administrator zu einem bestimmten Zeitpunkt eigene Systemwiederherstellungspunkte anlegen, so genügt es folgendes Cmdlet auszuführen:

Checkpoint-Computer "Testweise angelegter Systemwiederherstellungspunkt"

Die Bezeichnung des Wiederherstellungspunktes kann dabei beliebig angepasst werden. Optimaler Weise legt der Systemadministrator eine sprechenden Namen an, aus dem der Grund der Erzeugung des Restore Points hervorgeht.

Zusammenfassung

Die Systemwiederherstellung bietet den Systembetreuern schnelle und effiziente Lösungsansätze. Für den Fall, dass vorhandenen Probleme auf Software-, Update- und Konfigurationsfehler zurückzuführen sind, kann das Zurücksetzten des Systems auf einen früheren Zustand ein sinnvoller Weg zu Beseitigung der Fehler darstellen. Vor allem sparen die Administratoren durch die Verwaltung der Restore-Funktionen mittel der Powershell Zeit. Sollten nach der erfolgreichen Wiederherstellung das Problem gelöst sein, und der Rechner beispielsweise wieder korrekt starten, so empfiehlt es sich trotzdem, das System in gewissen Zeitabständen nochmals zu prüfen. Gegebenenfalls starten die Administratoren noch eine Hardwareanalyse zu einem günstigen Zeitpunkt  (etwa über Nacht).

Mark Minasi / FAH

Lesen Sie auch