Windows PE

Nachdem es nun sehr wahrscheinlich ist, dass die ersten GATE Apps im kommenden Jahr für ein USB-Stick-Live-System zugeschnitten sein werden, beginne ich - wie üblich - zuerst mit Windows, bevor es zur Linux Implementierung kommt.

Und da bleibt einem nur Windows PE als einzige kostenfreie Möglichkeit.

Es muss so um das Jahr 2005 herum gewesen sein, als ich auf ein interessantes Projekt im Internet stieß. Es hieß BartPE und behauptete, eine Windows Sitzung direkt von einer CD starten zu können.

Bart stand für den Vornamen des Programmierers und PE für “Preinstalled Environment”.
Dieses leider heute nicht mehr verfügbare Projekt bestand aus ein paar Tools, die aus einer Windows XP oder Server 2003 CD einige Dateien extrahieren und ein kleines ISO Image von gerade einmal 100 MB machen konnten.

Auf eine CD gebrannt konnte man davon booten und landete auf einem Windows Desktop, in dem ein selbst-fabriziertes Startmenü und weitere Tools integriert waren.

“Geil” dachte ich mir, denn auf dieser Basis kann man sich endlich mal sein “eigenes” Windows zusammenbauen.
Ob das ganze lizenzrechtlich OK war, stand auf einem anderen Blatt.

Doch bereits ein Jahr später, als Windows Vista herauskam, publizierte Microsoft ein interessantes Toolkit namens “Windows PE” bzw. “Windows Preinstallation Environment”.

Also was ist dieses PE?

Es ist eigentlich ein Mini-Windows für Setups und Reparaturen. Eine kleine und reduzierte Untermenge einer “normalen” Windows Installation, die nur bestimmte Treiber und ein limitiertes API-Set bereitstellt.

Windows PE ist zwischen 100 und 300 MB groß, kann von CD/DVD oder USB Stick gebootet werden, nutzt den regulären Windows Kernel und kann die meisten essentiellen Treiber laden.
Man hat z.B. Zugang zu LANs, jedoch sind Spezialitäten wie VPNs oder Mobiles Breitband damit nicht möglich.

Als Win32-Programmierer findet man tatsächlich recht viel in einer PE Installation. Von Sockets bis hin zu allen GUI-Fensterfunktionen kann man auf eine große Menge an üblichen Windows Funktionen zugreifen.

Natürlich fehlen Benutzeraccounts, Profilverzeichnisse und Dienste wie LDAP oder die Datei- und Druckerfreigabe.

Lizenzrechtlich darf jeder, der sich eine Windows-Lizenz gekauft hat, auch das dazugehörige Windows PE nutzen.
Dieses kann man sich von Microsoft herunterladen und ist meist in die Deployment Tools der jeweiligen Windows-Version eingebettet.

Leider gibt Microsoft diesen Tools gerne neue Namen und so heißt es:

  • Windows Vista AIK: (Automated Installation Kit) mit Windows PE 2.0 und 2.1
  • Windows 7: AIK (Automated Installation Kit) mit Windows PE 3.0 und 3.1
  • Windows 8 ADK: (Assessment and Deployment Kit) mit Windows PE 4.0
  • Windows 8.1 ADK: (Assessment and Deployment Kit) mit Windows PE 5.0
  • Windows 10 ADK: (Assessment and Deployment Kit) mit Windows PE 10

Windows PE startet ähnlich einem normalen Windows den Kernel und die GUI, wobei aber alle operativen Daten in ein virtuelles RAM-Laufwerk übertragen werden (Laufwerk X:). Änderungen am X-Laufwerk gehen also beim Neustart verloren.

Will man Treiber hinzufügen oder Einstellungen dauerhaft ändern, muss man die Boot-Image Datei (eine WIM-Datei) mit dism oder imagex mounten und die Änderungen vornehmen.

Eine spezielle Datei im Boot-Image ist \Windows\System32\Winpeshl.ini, in welcher festgelegt wird, welches “Primärprogramm” beim Hochfahren starten soll. In einem normalen Windows wäre das explorer.exe, welche auch die Startleiste bereitstellt, doch dieser fehlt in PE. Im Windows-Setup-Modus wird das entsprechende Windows Setup Programm in dieser Datei stehen, während ein frisches Windows PE einfach nur cmd.exe ausführt.

Geanau an dieser Stelle kann man ansetzen und seine eigenen Programme ausführen lassen.

Es besteht auch die Möglichkeit Windows PE auf eine Festplatte zu übertragen und mit entsprechenden BCD Einträgen als reguläres Betriebssystem zu starten.

Einen vollständigen Windows-Ersatz kann man aus Windows PE allerdings nicht machen, denn Microsoft lässt das System automatisch durchstarten, wenn es 2-3 Tage durchläuft.

Aber das System ist natürlich super, wenn man auf einem PC etwas testen oder reparieren möchte.

Aus diesem Grund nutzen auch Virenscanner und Partitionierungstools im Hintergrund Windows PE um unabhängig vom installierten System via CD oder USB-Stick zu booten und weitere Tools auszuführen.

Und Administratoren können sich damit ihr eigenes angepasstes Windows-Setup basteln, was in großen Unternehmen recht häufig auch der Fall ist. Denn Windows PE ist klein genug, dass man es auch über das Netzwerk booten kann (Windows Deployment Services).

Kurz gesagt: Ich mag das Teil eigentlich sehr. Wenn man mal die Doku gelesen hat und weiß, wie man ein PE zusammensetzt, ist es eine Sache von Minuten.


Wenn sich eine triviale Erkenntnis mit Dummheit in der Interpretation paart, dann gibt es in der Regel Kollateralschäden in der Anwendung.
frei zitiert nach A. Van der Bellen
... also dann paaren wir mal eine komplexe Erkenntnis mit Klugheit in der Interpretation!