c't-Notfall-Windows 2023

Unser Bausatz erstellt ein vom USB-Stick bootfähiges, transportables Windows zur Schädlingsbekämpfung und Datenrettung. Diese Projektseite ergänzt die Artikel.

Lesezeit: 13 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 461 Beiträge
c't-Notfall-Windows 2021
Von
  • Peter Siering
Inhaltsverzeichnis

Der Bausatz für das Notfall-Windows erfordert einen Windows-PC nebst Internetzugang. Er erstellt ein vom USB-Stick bootfähiges, transportables Windows mit allerhand nützlichen Werkzeugen, um Windows-PCs auf Schädlinge zu überprüfen, Daten zu retten und Passwörter zurückzusetzen.

Für c't 2/2023 haben wir das Notfall-Windows erneut überarbeitet. Es greift nunmehr als Basis auf ein unter Open-Source-Lizenz auf GitHub entwickeltes Projekt zurück: PhoenixPE. Die von uns vereinfachte und etwas abgewandelte Bauanleitung führt nach wie vor PEBakery aus; eine ebenfalls als Open-Source entwickelte Alternative zum altgedienten WinBuilder.

Die nötigen Downloads nebst MD5-Summen zum Überprüfen finden Sie auf dieser Seite weiter unten. Wie Sie den Bausatz und das erzeugte Notfallsystem anwenden, erklären Artikel aus c't 2/2023:

c't-Abonnenten mit Zugriff auf digitale Inhalte können die Artikel hier lesen:

Ältere, vertiefende Artikel zeigen weitere Anwendungsfälle auf:

Sollten Sie weder in den Artikeln noch hier die nötige Hilfestellung finden, schauen Sie doch im Forum vorbei. Gern können Sie uns auch per E-Mail Fragen stellen. Richten Sie diese bitte an ctnotwin23@ct.de und fügen Sie bei Bauproblemen gleich ein komprimiertes Log bei, das Sie im Unterverzeichnis Logs in Ihrem Bauverzeichnis als 7z-komprimierte Datei finden.

Sie benötigen den Bausatz selbst:

und zusätzlich eine der drei Windows-10/11-Eval-Versionen in 64-Bit-Ausgabe:

Vom Einsatz anderer Versionen von Windows 10 oder 11 raten wir grundsätzlich ab. Nicht alle enthalten die für das Verarbeiten des Bausatzes notwendige .wim-Datei, sondern ein nicht geeignetes .esd-Format – ein Konvertieren ist zwar möglich, aber arbeitsintensiv.

Gegebenenfalls (meist auf frisch eingerichteten PCs oder in VMs) sind auch die Visual C++ Laufzeitbibliotheken von Microsoft notwendig. Hier ist die aktuelle Fassung die passende. Die Architektur muss zu der des Bausystems passen.

Um die md5-Summen der Zip-Datei und ISOs zu überprüfen, genügt der in Windows verfügbare Befehl certutil in einer Eingabeaufforderung (der Name der ISO-Datei muss dabei angepasst werden):

certutil -hashfile windows.iso MD5

Die Liste ist in umgekehrt chronologischer Reihenfolge (neuestes Update zuerst):

Am 31.1. vormittags gleicht Update 8 länger anhaltende Download-Probleme bei PCI-Z aus.

Am 28.1. mittags kümmert sich Update 7 um ein weiteres, eigentlich bekanntes Problem:

  • beim Download der ADK-Tools via gwt.exe stören Leerzeichen im Bauverzeichnis; die Prüfung auf ungültige Zeichen im Namen des Bauverzeichnis läuft aber erst danach; provisorischer Fix, der den Download an dieser Stelle nicht entgleisen lässt, sodass eine brauchbare Fehlermeldung erscheint

Am 23.1. abends haben wir mit Update 6 ein bereits bekanntes Problem nochmals bearbeitet:

  • Bauabbrüche im Zusammenhang mit Tastaturkonfigurationen behandeln (DISM Fehler 87)

Am 20.1. nachmittags haben wir mit Update 5 einige weitere Dinge optimiert und Download-Adressen angepasst – es gibt auch ein neues Komplettpaket zum Download (als ctnotwin23_v105.zip):

  • neue Download-URL für McAfee Stinger
  • bessere Erkennung, wenn im Bauverzeichnis Avira noch aktiv ist
  • wenn bei Betrieb mit Windows-Defender ein Ausschluss für das Bauverzeichnis fehlt (eine Ausnahmeregel dafür), bietet der Bausatz an, eine solche anzulegen
  • weitere Bauabbrüche im Zusammenhang mit Tastaturkonfigurationen behandeln (DISM Fehler 87)
  • deaktivierte NTFS-Dateikompression verhindert jetzt den Bau nicht mehr (nur Warnung im Log)

    Änderung, die nur das Komplettpaket betrifft (bei einem Update nicht sinnvoll umsetzbar):
  • nach dem Entpacken des Zip-Archivs (ab v105) sind nur noch die Skripte/Komponenten des c't-Notfall-Windows in PEBakery sichtbar. Wir möchten so gängiger Fehlbedienung vorbeugen; erfahrene Nutzer können die PhoenixPE-Skripte mit wenigen Klicks aktivieren.

Am 11.1. mittags haben wir mit Update 4 die wegen eines Programm-Updates geänderte Download-Adresse von HWinfo korrigiert. Einige Skripte erhalten kosmetische Korrekturen. Netzwerkdienste sollten jetzt auch starten, wenn keine Netzwerkkarte gefunden wurde.

Am 10.1. morgens haben wir das Zip-Archiv anders verpackt (als ctnotwin23_v103.zip), um Fehlalarme von Antivirus-Software zu minimieren; ein Ausspielen dieser Änderung als Update 3 ergab keinen Sinn.

Am 4.1. abends haben wir das zweite Update bereitgestellt, es behebt folgende Probleme:

  • Bauabbrüche, die durch ungewöhnliche Tastaturkonfigurationen und den Einsatz zusätzlicher Software aus diesem Umfeld zustande kamen (DISM Fehler 87), werden vermieden
  • Bei der Konfiguration des Bausatzes für den Netzwerk-Boot per PXE durch Setzen der Option "Run all programs from RAM (Boot.wim)" war das handgeklöppelte Startmenü unbrauchbar; es wird jetzt für diesen Fall angepasst.

Am 2.1. um 16:30 Uhr haben wir eine aktualisierte Fassung des Zip-Archivs veröffentlicht (s.o.). Da ein sehr häufiger Supportfall erst nach dem Update abgedeckt wäre, haben wir uns zur Veröffentlichung eines neuen Zip-Archivs entschlossen. Das enthält folgende Aktualisierungen:

  • Der Bauvorgang erkennt jetzt schon beim Update eventuell dazwischenfunkende Antivirussoftware und bricht mit einer entsprechenden Warnung ab.
    Oft trifft das auf PCs zu, die mit Avast/AVG geschützt werden; dort ist unter Basisschutz -> Webschutz die Option "HTTPS-Scanning aktivieren" vorübergehend auszuschalten.
  • Sonderzeichen im Namen des Bauverzeichnisses werden besser erkannt. Die irrlichternde Erkennung hat unter anderem in einer Null im Verzeichnisnamen ein Problem gesehen.
  • Das Skript PhoenixPE/Finalize/Post-Process (c't) bringt jetzt in den Advanced Options (via Zahnradsymbol erreichbar) die Option "Phoenix-PC-Desktop-Shortcuts" mit, die das automatische Erstellen von Desktop-Shortcuts durch Setzen von Optionen in einzelnen Skripten zulässt.
  • Auf mehrsprachigen Systemen kam es unter Umständen zum Abbruch des Baus; das sollte jetzt nicht mehr passieren.

    Alle Änderungen stehen auch als automatisch eingespieltes Update 1 für die vorherige Version des Zip-Archivs bereit.

Überholte dritte Fassung: Bausatz c't-Notfall-Windows Version 103 (ctnotwin23_v103.zip), md5: 41b4e9e98248cd89c837a99d8f174269
Überholte zweite Fassung: Bausatz c't-Notfall-Windows Version 101 (ctnotwin23_v101.zip), md5: fcae3ed19ab82edbf3542a5f3bf062f3
Überholt, erste Fassung: Bausatz c't-Notfall-Windows 2023 (ctnotwin23.zip-Archiv), md5: 92e7e244e56773bc1501b1f2f832302f

Dauerthema bei Bausätzen für ein Windows-PE-basiertes Notfallsystem sind Fehlalarme von Antivirus-Software beim Entpacken der Zip-Archive, beim Bauen oder auch im Betrieb, wenn ein Scanner das laufende System untersucht. Wir prüfen die Bausätze des Notfall-Windows deshalb vor Veröffentlichung und haben die Ergebnisse und Methoden erstmals 2017 in einem eigenen Artikel zusammengefasst.

Der aktuellen Ausgabe des c't-Notfall-Windows sind wir ebenfalls wieder zu Leibe gerückt und dabei auf die in der folgenden Tabelle genannten Programme gestoßen, die den einen oder anderen Virenscanner auf den Plan rufen. Die Tabelle dokumentiert nur Dateien, die mehr als zwei Scanner haben Alarm schlagen lassen. Nach bestem Wissen und Gewissen handelt es sich dabei um Fehlalarme, die meist durch heuristische Verfahren ausgelöst werden – wirkliche Malware verwendet ähnliche Verfahren oder Techniken.

Programmname Funktionsbeschreibung
BcastEnvChg.exe sorgt beim Start dafür, dass sich Netzwerkkonfigurationsänderungen herumsprechen
binmay.exe sucht und ersetzt auch in Binärdateien; in Standardeinstellungen nicht aufgerufen
browsinghistoryview.exe erlaubt die Browser-History einzusehen
drvinstpatch.exe modifiziert Verhalten von Windows PE bei Treiberinstallation
fixscreen.exe korrigiert Bildschirmauflösung beim Starten des Notfallsystems
GetBinaryResource.exe extrahiert aus Ressourcen einer EXE- enthaltene Binärdaten (nur benutzt, wenn ProcMon oder DebugView aktiviert werden)
GetStringResource.exe extrahiert aus Ressourcen einer EXE enthaltene Texte (in einigen Skripten genutzt, um Sprachanpassungen vorzunehmen)
gwt.exe lädt selektiv Dateien aus dem ADK/WAIK herunter
hiderun.exe verbirgt Programmausgaben, macht den Startschirm schöner
hiveunload.exe blendet beim Bauen zeitweise geladene Registry-Strukturen wieder aus
imageconvert.exe hilft in PhoenixPE beim Konvertieren des Formats von Bilddateien
innounp.exe entpackt Installationspakete, die mit Inno Setup gebaut worden sind
jj.exe komprimiert JSON; bisher nur in den Makros von PhoenixPE erwähnt
keyfinder.exe liest Installationsschlüssel aus
letterswap.exe ändert Laufwerksbuchstabenzuordnung im Notfallsystem
mailpv.exe bringt Mail-Passwörter zum Vorschein
ntpwedit.exe ändert Kennwörter einer Windows-Installation
pecmd.exe steuert beim Starten des Notfallsystem startende Programme, skriptartige Funktionsweise
pinutil.exe legt in Startmenü & Co. Verweise auf Programme an
RegFind.exe sucht und ersetzt Inhalte in der Registry während des Bauens
xml.exe bearbeitet XML; bisher nur in den Makros von PhoenixPE erwähnt

Die folgenden Logs im HTML-Format sind beim Bauen auf einem PC mit Windows 11 Version 21H2 als Betriebssystem entstanden. Als Referenz ist auch ein Log enthalten, das beim Beschreiben eines USB-Sticks entsteht.

Haben Sie bitte etwas Geduld beim Rendern im Browser die Dateien sind einige MByte groß:

Log eines Baulaufes unter Windows 11 Version 21H2 mit Windows 10, 2004 als Basis
Log des Bespielens eines USB-Sticks mit dem erzeugten Notfallsystem auf Basis von Windows 10, 2004

Weitere gängige Antworten standen in c't 3/2023, die über diesen Link auch online nachzulesen sind.

Ich komme nicht weiter: Wenn ich PEBakeryLauncher.exe starte, weist das Programm daraufhin, dass die .NET Desktop Runtime 6.0.11 nötig sei, und startet den Browser zum Download derselben. Nach der erfolgreichen Installation kommt die gleich Empfehlung erneut. Was läuft schief?

Wir konnten das inzwischen reproduzieren. Es betrifft vor allem PCs, auf denen schon länger ältere Versionen der Runtime installiert sind und hängt damit zusammen, ob es sich um eine 32-Bit- oder 64-Bit-Installation handelt. Wenn sich auf einem 64-Bit-Windows die 32-Bit-Runtime vordrängelt, kommt es zu dieser Endlosschleife bei der Runtime-Installation.

Ob ein PC davon betroffen ist, lässt sich mit einem Aufruf von dotnet --info in einer Eingabeaufforderung herausfinden. Fehlen in der Ausgabe Hinweise auf x64 und enthaltenen die ausgegebenen Pfade das Verzeichnis "C:\Program Files (x86)", dann hilft es üblicherweise die Reihenfolge der Suchpfade zu ändern (PATH-Variable in der Eingabeaufforderung).

Die Reihenfolge ändern Sie dauerhaft über die "Erweiterten Systemeinstellungen" aus der Systemsteuerung (eine Suche aus dem Startmenü nach "erw" genügt für den direkt Aufruf). Wählen Sie dort den Reiter "Erweitert" aus und klicken Sie anschließend auf den Knopf "Umgebungsvariablen" (unten links).

Über die Umgebungsvariablen in den erweiterten Systemeinstellungen lässt sich der Systemsuchpfad so anpassen, dass dort die 64-Bit-Version von .NET Vorrang hat – den Pfad der x86-Ausgabe nach unten schieben.

Wählen Sie im Fenster für die Umgebungsvariablen im unteren Teil unter "Systemvariablen" den Eintrag "Path" aus und betätigen Sie den Knopf "Bearbeiten" unterhalb der Auswahlliste.

Im Fenster "Umgebungsvariable bearbeiten" klicken Sie den Eintrag "C:\Program Files (x86)\dotnet" an und schieben ihn mit dem Knopf "Nach unten" solange nach unten, bis er unterhalb von "C:\Program Files\dotnet" steht. Dann schließen Sie alle Fenster mit "OK".

Übrigens: In modernen .NET-Versionen verzichtet Microsoft beim Einrichten der x86-Runtime auf 64-Bit-Windows-Versionen darauf, diese überhaupt in den Suchpfad einzutragen: https://github.com/dotnet/runtime/issues/70039. Leider korrigieren die Installationspakete den Pfad beim Einrichten einer neuen Runtime nicht.

Ziemlich direkt nach dem Start des Bauprozesses zeigt PEBakery eine Fehlermeldung an: "Update-Download mit Zertifikatsfehler gescheitert. Das deutet auf aktiven Web-Schutz (Proxy) hin. Bitte vorübergehend deaktivieren und erneut versuchen. Baulauf wird abgebrochen.". Ich habe aber eine Ausnahme in meiner Virenschutzsoftware eingerichtet.

Bei mancher Sicherheitssoftware genügt eine Ausnahme für das Bauverzeichnis und den Prozess, der den USB-Stick beschreibt, nicht – so wie es der Artikel in c't empfiehlt. Viele Leser, die Software von AVG/Avast einsetzen, haben berichtet, dass dort die Downloads misslingen. Wir haben uns das angesehen und festgestellt, dass der darin enthaltene Web-Schutz die Downloads des Bausatzes torpediert.

Wenn das bei Ihnen auch zutrifft: Sie finden die zuständig Option unter Basisschutz -> Webschutz die Option "HTTPS-Scanning aktivieren". Wenn Sie diese für den Bauvorgang ausschalten, gelingen die Downloads. Sie sollten den PC sicherheitshalber währenddessen nicht für andere Aufgaben einsetzen.Danach sollten Sie die Option wieder einschalten, um nicht dauerhaft auf den Schutz zu verzichten.

In den ersten Versionen des Notfall-Windows tauchten in PEBakery noch alle Programme auf, die auch in PhoenixPE stecken. Neuerdings sind die verschwunden. Kann ich die wieder sichtbar machen?

Ja, die sind nicht weg, sondern nur versteckt, weil es häufiger zu Fehlbedienungen kam: Nicht alle Skripte in PhoenixPE laufen fehlerfrei durch, zum Teil fehlt Software, zum Teil setzen die Skripte auf Software, die auf dem Bau-PC installiert sein muss, und manche sind auch nur wenig getestet.

Auf eigene Gefahr und Rechnung können Sie die PhoenixPE-Skripte aktivieren. Selektieren Sie in PEBakery links im Konfigurationsbaum das Skript „PhoenixPE\Finalize\Post-Process (c’t )“. Klicken Sie dann in der rechten Fensterhälfte auf das Zahnradsymbol für die erweiterten Einstellungen („Advanced Options“).

Sie sehen dann drei Optionen, die bei der Integration von PhoenixPE-Apps/Skripten in das c't-Notfall-Windows helfen. Der Knopf "Deaktivierte PhoenixPE-Apps/Skripte reaktivieren" tut, was er verspricht. PEBakery liest die Skripte dann neu ein und zeigt auch die "verschwundenen Skripte" an.

Die Option „PhoenixPE-Menü einblenden“ lässt im Startmenü einen Eintrag „zzz_PhoenixPE“ auftauchen, der die Menüeinträge zeigt, wie PhoenixPE sie betückt. Die Option "PhoenixPE-Desktop-Shortcuts erhalten" lässt auch die Symbole der Programme auf dem Desktop erscheinen, bei denen das im jeweiligen Skripten aktiviert ist. (ps)