Windows PE

(Zurück zu: Dokus und Infos)

Einführung

Microsofts Betriebssystem “Windows” ist heute nicht nur ein Betriebssystem, sondern auch eine riesige Ansammlung von Code aus vergangenen Tagen.
Das System soll uns garantieren, dass uralte Programme mit lange überholten Schnittstellen ebenso noch laufen, wie die neueste modernste App.

Daher kennen wir Windows nur von einer großen Installation auf der Festplatte, wo anfangs 10 Gigabyte und später immer mehr Speicher für die vielen Komponenten und Updates benötigt werden.

Doch der Windows Kern ist dagegen überschaubarer und viel kleiner. Lässt man die ganzen alten Kompatibilitätscodes und Anwenderprogramme weg, dann erhält man:

Windows PE

Das “Preinstallation Environment”, kurz PE ist ein kleiner Mini-Windows Kern, der nur die nötigsten Schnittstellen und einige Standard-Treiber beinhaltet.

Es passt daher mit zwischen 100 und 300 Megabytes locker auf eine CD oder USB Stick.

Normalerweise dient Windows PE vor allem für die Abwickelung einer gewöhnlichen Windows Installation. Man bootet Windows PE von einer DVD oder einem USB Stick und von dort aus wird ein Standard-Windows Image auf die Festplatte kopiert.

Wir können aber aus diesem Mini-Windows unser eigenes kleines angepasstes Betriebssystem machen.
Darauf werden zwar keine großen Anwendungen wie Office oder Datenbankserver laufen (diese brauchen eben doch ein vollständiges Windows), aber wir können kleinere Programme wie Browser, Netzwerk- oder Reparatur-Tools meist ohne Probleme damit betreiben.

PE basierte Produkte

Viele üblichen Windows Tools benutzen Windows PE für Operationen, die in einem normalen Windows nicht möglich sind.

  • Partitionierungs Tools, die Laufwerk C: verändern sollen.
    Hier wird vom normalen Windows ins PE System gebootet, von dort aus die Änderung durchgeführt und anschließend wieder zum normalen Windows gewechselt.
  • Virus Scanner und Anti-Virus Programme Auch hier gibt es oft die Möglichkeit das normale Windows “von außen” zu scannen.
  • Datenrettung Wenn Dateien verloren gegangen sind, können sie mit speziellen Werkzeugen teilweise oder auch vollständig wiederhergestellt werden. Aber nur, wenn keine anderen störenden Programme parallel arbeiten. Daher wird auch hierfür Windows PE genutzt.

PE beziehen und lizensieren

Windows PE kann man nicht “im Laden” kaufen, sondern seine Komponenten sind Teil des “Assessment und Deployment Kit”, kurz ADK.

Dort befinden sich das Basis-Image und noch einige weitere Bestandteile, die man in das kleine Windows-Image integrieren oder weglassen kann. Beispiel: dotNet Framework oder Scripting-Unterstützung.

Nutzen darf man das ADK und Windows PE nur, wenn man eine normale Windows Lizenz für ein vollständiges Windows gekauft hat.
Es ist also nicht erlaubt, das kleine Mini-Windows bei Bekannten oder seinen Kunden für die tägliche Arbeit zu nutzen.

Man darf es aber parallel zum Experimentieren oder für analytische Zwecke privat nutzen.

Funktionsweise

Windows PE arbeitet im Normalfall mit einem RAM-Abbild anstatt mit der Festplatte.
Weil dieses Windows klein genug ist, werden alle Dateien beim Booten in den Speicher geladen und über das virtuelle RAM-Laufwerk “X:" bereitgestellt und nicht unter “C:" wie bei einer normalen Windows Installation.

Das bedeutet auch, dass Änderung an diesem Windows mit dem nächsten Neustart verloren gehen, weil die Daten alle im RAM liegen und nicht automatisch auf das Bootmedium zurückgeschrieben werden.

Wenn man aber Dokumente und Dateien auf z.B. einem USB Stick ablegt, überleben diese natürlich den Neustart und somit eignet sich PE durchaus auch als Notfallsystem, mit dem auch Online arbeiten kann.

Hardwareseitig werden viele Basistreiber und Kernfunktionen eines PCs durch Windows PE betrieben. Neben Grafik, Festplatte und Netzwerk, kann man auch weitere Treiber integrieren.

Es fehlt jedoch an speziellen Programmen, die erweiterte Hardware ansteuern können. z.B.: Bluetooth, Audio oder andere Multimedia-Geräte.
Vor allem ist es durchaus schwierig deren Treiber in das System zu integrieren und braucht eine Menge Fachwissen dafür.

Daher ist es sinnvoll sich nur auf rudimentäre Aufgaben zu beschränken.

Windows PE kann übrigens entweder als 32-bit oder als 64-bit System genutzt werden, doch man kann nicht wie in einem normalen Windows mit einem 64-bit System auch 32-bit Programme nutzen. Hier muss man sich im Vorfeld entscheiden kann dann etweder nur 32-bit oder nur 64-bit Anwendungen einsetzen.

Erstellung eines PE Images

Kurz zusammengefasst, sieht der Ablauf in etwas so aus.

  1. Download und Installation des ADK mit PE-Support
  2. Öffnen der PE-Kommandozeile
  3. Per copype Script wird ein neues PE-Image in einem Verzeichnis angelegt
  4. dism mountet das PE WIM-Image in ein temporäres Verzeichnis
  5. Per dism werden zusätzlich Komponenten integriert (dotNet, WMI, Scripting)
  6. Per dism können weitere Treiber für Netzwerk oder Grafik integriert werden
  7. Das gemountete Image wird per dism wieder in die WIM-Datei zurückgespeichert.
  8. Mit dem makewinpemedia Script wird entweder eine ISO-Datei (für CDs) oder der USB-Stick mit dem fertigen Windows PE aufbereitet.

Der nachfolgende Erstellungsprozess setzt Windows 10 voraus. Viele Schritte sind auch unter Windows 8, teilweise auch unter Windows 7 durchführbar, jedoch können einzelne Schritte von der beschriebenen Prozedur abweichen.

Download und Installation

Nach dem Download des Windows ADK in einer möglichst neuen Version (ich empfehle Windows 10 und neuer) wird dessen Installation gestartet. Hier muss man darauf achten, dass der Punkt “Preinstallation Environment” bzw. “Bereitstellungsumgebung und/oder -werkzeuge” mit installiert werden.

Danach befinden sich alle erforderlichen Dateien im Verzeichnis C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment sofern bei der Installation dieser Standard-Pfad nicht abgeändert wurde.

Im Startmenü sollte sich auch der Punkt “Umgebung für Bereitstellungs- und Imageerstellungstools” auffinden lassen.

Dieser sollte als Administrator gestartet werden, womit man eine cmd.exe Konsole erhält, in welcher alle erforderlichen Pfade für Windows PE vorkonfiguriert sind.

Basis Image kopieren und erweitern

Aus dem Verzeichnis in der zuvor geöffneten Konsole sollte man zuerst in das PE-Verzeichnis wechseln, und zwar per cd "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment"

Hier liegt nämlich das Script copype, mit welchem die wichtigsten PE-Dateien für ein neues Image in ein neues Arbeits-Verzeichnis zusammenkopiert werden können.

Das Script kann entweder ein 32-bit Image (x86) oder ein 64-bit Image (amd64) erstellen. Ich wähle her stets 32-bit, weil es auch heute jede Software als 32-bit Version gibt, während nicht immer ein 64-bit Zwilling existiert.

Nennen wir daher unser Arbeitsverzeichnis einfach pe-x86 und führen daher den Befehl copype x86 c:\pe-x86 aus. Das Script kopiert die Boot-Dateien und das Basis-Image namens boot.wim in das Unterverzeichnis c:\pe-x86\media und c:\pe-x86\media\sources

Theoretisch könnten wir nun schon ein finales PE-Image fertigstellen, doch diesem würde einige Komponenten fehlen und würde daher viele Anwendungsprogramme nicht ausführen können.

Daher wird das Basis-Image boot.wim in ein temporäres Verzeichnis “gemountet”, als sein Inhalt darin bereitgestellt, damit wir es aktualisieren und verbessern können.

Der Befehl: dism /Mount-Image /ImageFile:c:\pe-x86\media\sources\boot.wim /Index:1 /MountDir:d:\pe-x86\mount tut genau das, und nachdem das Kommando abgearbeitet ist, können wir im Verzeichnis d:\pe-x86\mount alle Dateien und Verzeichnisse sehen, die im Basis-Image enthalten sind.

Die angesprochenen fehlenden Komponenten befinden sich im Verzeichnis C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs daher sollt man mit cd C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs nun dort hin wechseln.

Mit dem Kommando: dism /Image:c:\pe-x86\mount /Add-Package /PackagePath:XXXXXX.cab werden nun fehlenden Komponenten aus den CAB Dateien integriert.

Folgende halte ich für essentiell:

  • WinPE-WMI.cab
    • WMI Unterstützung für Zugriff auf viele Systemeinstellungen
  • WinPE-Scripting.cab
    • Unterstützung für VBScript und JavaScript für Automationsaufgaben
  • WinPE-NetFx.cab
    • Das abgespeckte dotNet Framework für die Ausführung vieler Anwendungsprogramme
  • WinPE-PowerShell.cab
    • Die Windows Powershell zur effektiven Administration per Konsole

Weitere hilfreiche optionale Komponenten sind:

  • WinPE-HTA.cab
    • Hypertext-Applikationen, also UIs per HTML und Javascript
  • WinPE-MDAC.cab
    • Client-Zugriff auf Datenbanken
  • WinPE-PPPoE.cab -Zusätzliche Netzwerkfunktionen für PPP over Ethernet
  • WinPE-RNDIS.cab
    • Zusätzliche Netzwerkfunktionen für Remote NDIS
  • WinPE-EnhancedStorage.cab
    • Zugang zu verschlüsselten Laufwerken und Bitlocker.
  • WinPE-FMAPI.cab
    • Dateiverwaltung zur Wiederherstellung gelöschter Dateien
  • WinPE-StorageWMI.cab
    • WMI Erweiterung für den Zugriff auf moderne Datenspeichertypen

Alle gewünschten CAB Dateien werden also der Reihe nach integriert, wie im Beispiel: dism /Image:c:\pe-x86\mount /Add-Package /PackagePath:WinPE-WMI.cab

Wenn wir damit fertig sind, müssen wir die neuen Komponentenupdates vom mount-Verzeichnis wieder in die WIM-Imagedatei zurückübertragen. Und das erledigt das Kommando: dism /UnMount-Image /MountDir:c:\pe-x86\mount /commit

ISO Image und/oder USB Stick

Die Dateien von Windows PE sind also fertig, nun wollen wir ein korrektes Boot Medium erstellen:

Dafür nutzen wir wieder in der Konsole das Kommando: makewinpemedia /iso c:\pe-x86 c:\WinPE10-x86.iso um eine CD ISO-Image-Datei zu erhalten. Danach kann die ISO-Datei auf eine CD oder DVD gebrannt werden.

Oder wir nutzen: makewinpemedia /ufd c:\pe-x86 U: um das Image auf den USB-Stick mit Laufwerk U: zu übertragen (Wenn das USB-Laufwerk anders heißen sollte, muss dies im Kommando natürlich berücksichtigt werden).
Hinweis: Der USB-Stick wird mit dieser Prozedur formatiert und vollständig gelöscht!

Damit ist unser Windows PE Image fertig und kann auf jedem beliebigen Computer getestet werden, der von CD oder USB-Stick booten kann.

Nach dem Start sollte eine Windows Kommandozeile sichtbar werden (cmd.exe). Über welche man die wenigen anderen PE-Programme starten kann, wie z.B.:

  • taskmgr, der Windows Task-Manager
  • notepad, der Windows Editor
    • PE hat keinen eigenen Explorer, aber man kann im Datei-Öffnen Dialog von Notepad tatsächlich über das Kontexmenü Dateien kopieren und Löschen … und schon haben wir ohne Zusatztools ein paar Dateifunktionen gefunden.

PE-Image erweitern

Wenn wir das Arbeiten in Windows PE erleichtern wollen, können wir ein paar externe Programme in integrieren, die uns Benutzeroberflächen für administrative Aufgaben zur Verfügung stellen.

Portable Anwendungen

Einige Anwendungen besitzen so genannte “Portable” Varianten neben den üblichen Installationspakten. Dies “portablen” Programme kopiert man einfach in ein Unterverzeichnis, startet eine EXE und alles läuft. Das ist für uns ein großer Vorteil, da Installationsroutinen von Fremdsoftware unter Windows PE nicht funktionieren.

Fortsetzung folgt


(Zurück zu: Dokus und Infos)

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!