WinPE via HTTP(S)

Daniel White
2026-01-01T16:26:39Z

Ab der WinPE Preboot Version 1.8.0 wird der Verbindungsaufbau über http(s) unterstützt. Das folgende Kapitel beschreibt die notwendigen Anpassungen der Umsetzung.

Das Deployment via http(s) setzt die Verwendung der aktuellen Matrix42 PreOS Pakete voraus, die mit der WinPE Preboot Version 1.8.0 oder neuer veröffentlicht wurden:

HardwareInfo 3.0 oder höher

WindowsInstallation 5.0 oder höher

EmpirumAgentSetup 2.0 oder höher

Stellen Sie sicher, dass die verwendete Boot Konfiguration ebenfalls mit dem aktuellen Stand der WinPE Preboot Version ab 1.8.0 oder neuer erstellt wurde.

http(s) Unterstützung bei selbsterstellten PreOS Paketen

Eventuell sind selbst erstellte PreOS Pakete nicht sofort für den http(s) Transport geeignet. Der Grund dafür ist meistens, dass in den PowerShell-Skripten auf Dateien oder Verzeichnisse auf den Empirum-Share im SMB Fall zugegriffen werden, die nicht Teil des PreOS Paketes selbst sind.

Um die Anpassungen zu erleichtern, soll an dieser Stelle auf bestimmte Eigenheiten beim http(s) Transfer eingegangen werden.

Generell wird im http(s) Fall mit lokalem Cache gearbeitet. Dateien und Verzeichnisse werden von der Empirum-Freigabe über http(s) in lokale Verzeichnisse transferiert. Es werden nicht alle Freigaben automatisch transferiert, sondern nur Verzeichnisse und Dateien, die angefragt werden.

Im http(s) Fall wird vor der Ausführung des PreOS Paketes, der Inhalt des Paketes (z.B. wird im Fall des WindowsInstallation PreOS Paketes das Verzeichnis Configurator$\Packages\Matrix42\OsPackages\WindowsInstallation\5.6) zunächst lokal in ein Cache-Verzeichnis übertragen und im Anschluss das install.ps1 Skript lokal ausgeführt. Relative Zugriffe auf Dateien, die sich im Paket befinden, sind somit abgedeckt.

Muss in einem PreOS Paket auf Dateien zugegriffen werden, die nicht in dem Paketverzeichnis vorhanden sind, muss dies über das Cmdlet Get-EmpirumPackagePath stattfinden. Die Methode wurde bereits in der Vergangenheit verwendet, um den Pfad auf die Empirum-Freigabe (oder das Offline Medium) zu bekommen. Diese Methode muss im http(s) Fall die angegebene Datei oder das Verzeichnis zunächst lokal in ein Cache-Verzeichnis übertragen und im Anschluss den lokalen Pfad zurückgeben. Das PreOS Paket kann somit mit dem lokalen Pfad weiterarbeiten und auf die Datei oder das Verzeichnis zugreifen.

Das Cmdlet Get-EmpirumAgentSetting -PeAgentConfig RemoteLogFolder kann im http(s) nicht verwendet werden, um Log-Dateien auf der Empirum-Freigabe zu ändern. Für diese Zwecke wird das neue Cmdlet Get-EmpirumTransfer zur Verfügung gestellt. Mit dem Aufruf Get-EmpirumTransfer LogFolder -Type RemoteLogFolder, kann vergleichbar dem Get-EmpirumPackagePath Aufruf, das EmpInst$\Wizard\OS\WinPeStatus Unterverzeichnis lokal transferiert werden. Die Methode gibt ein Objekt zurück, mit dessen Hilfe über die Path-Eigenschaft auf den Pfad zum lokalen Cache zugegriffen werden kann. Das PreOS Skript kann nach den Anpassungen der Dateien im Cache das Synchronisieren der lokalen Dateien zum Server über die Methode Sync veranlassen. Dabei werden die lokalen Änderungen auf den Server übertragen.

Hier ein Beispiel aus dem HardwareInfo PreOS Paket:

$RemoteFolderObject = Get-EmpirumTransfer LogFolder -Type RemoteLogFolder -Verbose;
…
CreateAndCopyDriverJson $RemoteFolderObject.Path;
$RemoteFolderObject.Sync();

WinPE basiertes Deployment via http(s) einrichten

Die folgenden Schritte beschreiben die Anpassungen, die vorgenommen werden müssen, damit beim WinPE basierten Deployment der Datentransfer per http(s) durchgeführt und nicht mehr über den Empirum-Share direkt über SMB zugegriffen wird.

1. Konfigurieren und installieren Sie das Empirum Subdepot Webservice Configuration Paket auf einem Subdepot über das das Deployment via http(s) durchgeführt werden soll, wie es in der Online-Hilfe beschrieben ist.

2. Erstellen Sie ein Empirum Agent Template, bei dem die Option HTTP oder HTTPS im Bereich der Transportprotokolle angehakt ist. Stellen Sie sicher, dass das im ersten Schritt vorbereitete Subdepot als Ausfall-Server ausgewählt ist.

Sobald die Option HTTP oder HTTPS im Agenten Template ausgewählt ist, wird das SMB Protokoll nicht verwendet, auch wenn es aktiviert ist.
Bei Auswahl des HTTPS Protokolls muss sichergestellt werden, dass der hier ausgewählte Ausfall-Server auch von "außen" unter diesem Namen erreichbar ist.

3. Wechseln Sie in die Boot Konfiguration und führen Sie über das Menü Ansicht > Aktualisieren aus, damit die aktuellen Agenten Templates und deren Werte erneut aus der Datenbank gelesen werden.

4. Wählen Sie das erstellte Empirum Agent Template in einer Boot Konfiguration aus.

5. Wird die Option "Nur vertrauenswürdigen Server Zertifikaten vertrauen" im HTTPS Fall in dem verwendeten Agenten Template verwendet, müssen Sie die Fingerabdrücke der Serverzertifikate hinterlegen, denen vertraut werden soll. Zur WinPE Laufzeit funktioniert die übliche Validierung über den Zertifikatsspeicher und die Zertifikatsketten nicht.

6. Stellen Sie sicher, dass die erweiterten Eigenschaften der Bootkonfiguration angezeigt werden, in dem Sie den Schalter Erweiterte Eigenschaften aktiviert.

7. Im unteren Teil des Eigenschaftenbereichs wird rechts neben Fingerabdrücke für die https Validierung eine Liste für die Fingerabdrücke angezeigt, die aktuell noch leer ist.

8. Fügen Sie mit der + Schaltfläche einen neuen Fingerabdruck hinzu.

9. Übertragen Sie nun den Fingerabdruckwert in die Spalte Fingerabdruck des Serverzertifikates und fügen Sie noch eine Beschreibung hinzu.

10. Soll die Bootkonfiguration für mehrere Depots verwendet werden, wiederholen Sie den Vorgang für jedes Depot und tragen Sie die entsprechenden Fingerabdrücke des Serverzertifikates ein.

11. Speichern Sie die Boot Konfiguration erneut ab, damit die Änderungen übernommen werden.

12. Weisen Sie die erstellte Boot Konfiguration in der Administration der jeweiligen Konfigurationsgruppe zu und aktivieren Sie das Deployment.

IIS Zertifikat (Fingerabdruck) auslesen

Die vom IIS verwendeten Zertifikate können im Internet Information Service (IIS) Manager überprüft und deren Fingerabdrücke (Thumbprint) ausgelesen werden.

1. Wechseln Sie im IIS Manager im linken Baum auf den Eintrag des Servernamens, klicken Sie im mittleren Fenster doppelt auf "Serverzertifikate (Server Certificates)".

2. Im mittleren Fenster werden dann die Zertifikate angezeigt. Klicken Sie das verwendete Zertifikat doppelt an, um sich die Eigenschaften des Zertifikats anzeigen zu lassen.

3. Im Reiter "Details" kann nun das Feld "Fingerabdruck" ausgewählt werden.

Falls so wie hier zu sehen, Leerzeichen im Fingerabdruck vorhanden sind, müssen diese entfernt werden.
Beispiel: Aus dem Fingerabdruck "‎11 dc 80 bc eb e0 41 a0 ab b2 f9 de bd 91 18 20 0c 25 b0 ef" wird "‎11dc80bcebe041a0abb2f9debd9118200c25b0ef".
Dann kann dieser eingetragen werden.

4. Soll die Bootkonfiguration für mehrere Depots verwendet werden, wiederholen Sie den Vorgang für jedes Depot und tragen Sie die entsprechenden Fingerabdrücke des Serverzertifikates ein.

5. Speichern Sie die Boot Konfiguration erneut ab, damit die Änderungen übernommen werden.

6. Weisen Sie die erstellte Boot Konfiguration in der Administration der jeweiligen Konfigurationsgruppe zu und aktivieren Sie das Deployment.

Standard Zeitserver ändern

Soll ein anderer Zeitserver als 'pool.ntp.org' verwendet werden, kann dies über die Variable OS_RegionalSettings.TimeServer konfiguriert werden. Gehen Sie dazu wie folgt vor:

Als Standard wird 'pool.ntp.org' als Zeitserver verwendet. Soll dies nicht abgeändert werden, brauchen Sie diese Schritte nicht durchführen.

1. Wechseln Sie in der Matrix42 Management Console zu Administration und klicken Sie im Menü Extras auf Variablendefinitionen.

2. Klicken Sie im rechten Fenster doppelt auf die Variable OS_RegionalSettings.

3. Erstellen Sie die Variable TimeServer vom Typ Betriebssystem und dem Kontrollelement Text (siehe Bild).

4. Betätigen Sie mit OK zum Speichern und zum Schließen der Dialoge.

5. Wählen Sie anschliessend den Client oder die jeweilige Konfigurationsgruppe aus und tragen den von Ihnen gewünschten Zeitserver ein, bspw. 'de.pool.ntp.org' (siehe Bild).

6. Aktivieren Sie das Deployment.