Ich und Windows PE
« | 23 Dec 2018 | »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).
Fazit
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.