Empirum WinPE Boot Troubleshooting

Matrix42 bietet nun seit einer geraumen Zeit die Alternative WinPE als PXE-Bootmedium für die Windows 10 Installation an. In Kürze wird damit auch die automatisierte Installation von Windows 7 und der Windows Server Versionen möglich sein. Damit werden weitere Grundlagen geschaffen, den herkömmlichen EPE PXE-Boot für Windows Installationen obsolet zu machen. Die Installation per WinPE ist in der Empirum Welt ein Bruch mit dem vorhandenen Vorgehen, dass ich jedoch nicht negativ werten möchte. Die Möglichkeiten sind vielfältiger, die Umsetzung dagegen noch jung und somit nicht so umfänglich wie der vorhandene EPE PXE-Boot.

Der WinPE PXE-Boot bootet ein von Empirum modifiziertes bzw. ergänztes Windows PE. Das WinPE wurde im Bedarf um weitere Treiber ergänzt, aber auf jeden Fall um nützliche Libraries und den Matrix42 UAF Dienst. Letzterer führt die zugewiesenen PreOS-Packages (Powershell „Pakete“) aus und bedient sich der gesetzten Variablen. Diese zugewiesenen Pakete beschreiben die Art und Weise, wie z.B. die Betriebssystem-Installation stattfinden soll. Auf weitere Einzelheiten und Vergleiche mit dem EPE Boot werde ich an anderer Stelle eingehen.

So gliedert sich der WinPE PXE-Bootvorgang in:

  • Laden und Ausführen der WinPE Umgebung
  • Laden des Matrix42 UAF Dienstes
  • Verarbeiten der PreOS-Packages

Nun zu möglichen Problemen und Maßnahmen/Hilfestellungen zur Bearbeitung.

Laden der Windows PE Umgebung

Schlägt bereits das Laden der WinPE Umgebung fehl, so könnte dies ggf. an der TFTP Blocksize liegen. Diese kann bis Empirum v19 global in der .config Datei des BTQH (Backend Task Queue Host Services) Dienstes eingestellt werden. Standardmäßig steht dieser Wert auf 4096. Mit größeren Werten kann man den Boot beschleunigen. Damit kann er jedoch unzuverlässiger werden. In einem Falle musste ich die Größe auf 1456 festsetzen, damit der Boot zuverlässig an allen Standorten funktioniert hat.

Windows PE ist gestartet

Sobald das Windows PE gestartet ist, kann mittels STRG+C auf die Kommandozeile und per STRG+L direkt auf die Log Datei des UAF Dienstes zugegriffen werden. Die Windows PE Umgebung befindet sich unter X:\. Der UAF Dienst liegt im Ordner X:\UAF. Das wpeinit.log unter X:\Windows\System32.

Herstellen einer Netzwerkverbindung

Damit der im WinPE implementierte UAF Dienst seine Aufträge abarbeiten kann, bedarf es einer grundlegenden Netzwerkverbindung. Diese Verbindung wird durch Laden und Starten des Netzwerk-Stacks durch die  X:\Windows\StartNet.cmd und nachvollziehbar durch die wpeinit.log  vorgenommen (QueryAdapterStatus ist hier das passende Suchwort). Kann das WinPE keine Netzwerkverbindung aufbauen, kann es notwendig sein, das WinPE mit Netzwerk- und/oder Speicherverwaltungs-Treibern (Storage) zu versorgen. Dies geht über die Bootkonfiguration und wird in einem anderen Beitrag erläutert.

DeviceMapping.xml

Die DeviceMapping.xml im \\%EmpirumServer%\Values$ Verzeichnis stellt die Verbindung MAC-Adresse bzw. UUID zum Computernamen her. Somit darf jede MAC Adresse bzw. UUID auch nur einmal in der DeviceMapping.xml vorhanden sein. Beim Einsatz von SubDepots muss zusätzlich beachtet werden, dass es für die DeviceMapping Datei einen separaten SyncJob (ESubdepot_DeviceMapping) gibt, der zugewiesenen werden muss.

UAF – Auftragsverarbeitung

Das Vorgehen des UAF Dienstes wird im Matrix42.Platform.Service.Host.log festgehalten. Wie zuvor beschrieben, kann dies per STRG+L geöffnet werden. Um Neuerungen mitzubekommen, muss man ggf. das Fenster schließen und erneut aufrufen. Nach einer UAF Sitzung wird das Log auf den EmpirumServer zurückgeschrieben. In Empirum v18 bzw. WinPE 1.4.14 ist das das Verzeichnis \\%EmpirumServer%\EmpInst$\Wizard\OS\Auto\<letzten8 Stellen der MAC-Adrese> bzw. <UUID>.

PXE-Image / WADK Version

Wenn man die neuen WinPE Versionen einsetzt, sollte man wie ein Blog-Leser zusätzlich darauf hingewiesen hat, sicherstellen, dass man die aktuelle WADK Version auf dem EmpirumServer installiert hat. Matrix42 empfiehlt den Einsatz der WADK Version 1903 (eine Version 1909 wird nicht von Microsoft bereitgestellt). Mit dem WADK 1903 habe ich bis dato keine schlechten Erfahrungen gemacht, ganz gleich ob Windows 10 Enterprise 2016 LTSB oder Windows 10 Build 1909 installiert wurde. Zusätzlich sollte man darauf achten, dass die PXE-Image Erstellung (unter Konfiguration\Boot-Konfiguration) erfolgreich ist. Die aktualisierten PreOS Pakete funktionieren auch nur zuverlässig mit einer zu der Version passenden Boot-Konfiguration bzw. aktualisierten PXE-Image.

Update: In neueren WinPE Versionen werden die Log Dateien nach \\%EmpirumServer%\EmpInst$\Wizard\OS\WinPEStatus\%Domain%_%Computername% geschrieben .
Hinweis: Bis WinPE 1.4.14 (mindestens) werden die Log Dateien nicht überschrieben, wenn zwischenzeitlich ein Neustart stattgefunden hat.

 

8 Kommentare Schreibe einen Kommentar

  1. Hi Jochen,
    ich versuche mal hier an deinem Blog dran zu bleiben und ggf. andere Erfahrungen mit einfließen zulassen.
    Beim PXE aktivieren unter WinPE hatte ich schon öfter das Phänomen, dass die OS.ini im UUID Ordner geschrieben wurde (was erstmal richtig ist). Jedoch der PXE Dienst die OS.ini im MAC8 Ordner sucht und nicht findet, somit keine Installation startet. Abhilfe brachte nur den Client zu deaktivieren (OS.ini wird aus dem UUID Ordner gelöscht), in den PC Eigenschaften das UUID Feld zu leeren und neu zu aktivieren. Somit landet die OS.ini im MAC8 Ordner und die Installation läuft wie gewohnt.
    Des Weiteren kann es vorkommen das eine UUID auf der Black-List gelandet ist, dies sieht man sehr leicht im DebugView auf dem PXE Server. Hier reicht es aus, den betroffenen Eintrag zu löschen:
    Unter Konfiguration -> Boot Konfigurationen „Extras“ „Ungültige UUID‘s“

    • Hallo Ingo,

      danke für Dein Feedback. Generell ist es bei der WinPE Thematik (bei Besonderheiten und Problemen) interessant, welche Empirum Version und WinPE Umgebung du jeweils im Einsatz hast.

      Grüße

      Jochen

  2. Hallo Jochen,

    unter UAF – Auftragsverarbeitung steht bei Dir beschrieben:
    „In Empirum v18 bzw. WinPE 1.4.14 ist das das Verzeichnis \%EmpirumServer%EmpInst$WizardOSAuto bzw. .“
    Wir benutzen Empirum 18.0.3 mit WinPE 1.6.4… und die WinPE Logs werden ins Verzeichnis \%EmpirumServer%EmpInst$WizardOSWinPEStatus_ geschrieben.

    Grüße

    • Hallo Martin,
      danke für die Rückmeldung und Deinen Hinweis.
      Mit neueren WinPE Version 1.6 > 1.4.x werden die Logs und Statusinformationen an anderer Stelle gespeichert.
      Ich habe den Artikel dahingehend aktualisiert.
      Grüße
      Jochen

  3. Wenn man WinPE v1.8.0 verwendet unbedingt darauf achten NICHT WADK 1809 sondern 1903 zu verwenden.

    https://marketplace.matrix42.com/de/details/winpe/
    2019-12-19: Update to WinPE 1.8.0

    Hinweis: Aufgrund fehlender Funktionen in WADK 1809 gibt es Probleme in WinPE. Wir empfehlen die Nutzung des WADK 1903!

    Ich habe mit WADK 1809 immer folgenden Fehler erhalten:
    2020-01-24 14:57:37.331 [Error] [Process.ErrorReadNotifyUser] Get-ComputerInfo : CimSessionOptions instance is invalid: unsupported protocol or unrecognized custom option. Verify
    2020-01-24 14:57:37.362 [Error] [Process.ErrorReadNotifyUser] parameter passed to the CimSessionOptions(string) constructor and/or parameters passed to the
    2020-01-24 14:57:37.362 [Error] [Process.ErrorReadNotifyUser] CimSessionOptions.SetCustomOption(string, string) or CimSessionOptions.SetCustomOption(string, int) method.

    • Danke für den Hinweis. Ich habe beide Artikel erweitert. Wenn ich es zeitlich einrichten kann, lade ich in Kürze auch neue WinPE Pakete hoch, dann lässt sich dass noch besser kontrollieren bzw. bringt mich das gerade noch auf eine Idee …

  4. Hallo Jochen,
    erstmal vielen Dank für deine zahlreichen Blog Einträge.
    Selbst ich als meiner Meinung nach sehr erfahrener Empirum Admin (Seit 8 Jahren) kann bei dir noch das ein oder andere lernen oder sich Tricks abschauen 😉
    BackToTopic:
    Hast du eine Idee was die Ursache sein könnte, wenn an einem Depot Standort nur noch die Blocksize 1KB funktioniert und alles drüber beim Laden der Boot.wim abstürzt?
    Grüße
    Markus

    • Hallo Markus,
      danke für Deine positive Rückmeldung – das freut mich.
      Ich habe dies bis dato auch nur bei einem Kunden.
      Dort ist es so, dass viele Parameter an den Standorten: Einstellungen auf dem Netzwerkadapter, Einstellungen auf Routern und Switches unterschiedlich sind am Aussenstandstandort gegenüber dem Hauptstandort.
      Viele Grüße
      Jochen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert