Dies ist eine weiterführende Anleitung zu meinem Grundgerüst, basierend auf dem nachfolgenden Artikel:
PXE&TFTP&DHCP Server einrichten
In diesem Artikel geht es um das Erstellen von Windows 10 WinPE-Images, die sowohl über BIOS, als auch UEFI gestartet werden können. In meinem direkten Beispiel wird dies im BIOS-Modus über PXELinux mit Verweis auf den Windows-Boot-Manager geregelt oder optional durch das Tool Memdisk.
Beides sind Varianten, die ohne Probleme funktionieren. Im UEFI-Modus wird dann ein iPXE Skript verwendet.
Aktualisiert – 09.02.2025:
- ADK-Paket wurde aktualisiert.
- Intel Treiber Paket auf Version 30.0 aktualisiert
- In der neuesten ADK Version werden alle Arten von x86 Images nicht mehr unterstützt!
Download: W10 ADK-Paket (Erstellt von Stefan Saft)
Bevor wir anfangen, möchte ich anmerken, dass dies eine sehr lange Anleitung wird. Es wäre vielleicht nicht verkehrt, sich noch einen Kaffee zu machen und nochmal kurz durchzuatmen.
Voraussetzungen:
Was brauchen Sie alles, damit Sie auch ein WinPE in aktuellster Version erstellen können?
Ein aktuelles Windows 10:
Ihr System, worüber Sie die WinPEs erstellen wollen, muss ein aktuelles Windows 10 Build 23H2 sein. Welche Version Sie haben, können Sie prüfen, wenn Sie unter Windows die Eingabeaufforderung öffnen und:
winver
eingeben.

Es gäbe natürlich die Möglichkeit, dass auch mit älteren Windows Versionen machen zu können, allerdings wollen Sie doch, dass Sie mit der aktuellsten Version auch alle Windows Versionen installieren lassen könnten, oder? Sollten Sie nicht das Build 23H2 haben, wird der nächste Schritt in dieser Anleitung fehlschlagen. Daher updaten Sie zuerst über die Windows Update Funktion Ihr Windows 10 auf den aktuellsten Stand der Dinge.
Windows 10 ADK 10.1.26100.2454 (Dezember 2024) Download und Installation:
Des Weiteren laden Sie sich auf der Microsoftseite die aktuellste Windows 10 ADK 10.1.26100.2454 (Dezember 2024) für Ihr Betriebssystem herunter.
Klicken Sie unten auf
„Windows 10 ADK 10.1.26100.2454 (Dezember 2024) herunterladen“
Kopieren Sie diese Datei an einen beliebigen Ort und starten Sie dann die adksetup.exe. Wundern Sie sich nicht, das die Datei nur knappe 2 MB groß ist, denn das ist ein Onlineinstaller. Es werden etliche GB aus dem Internet heruntergeladen werden müssen. Während dem Setup ist es ratsam, alle Dateien für einen anderen Rechner herunterzuladen als Installationsmethode zu wählen, denn dann haben Sie diese Dateien alle und müssten diese nicht erneut herunterladen, wenn Sie das auf einem anderen Rechner ebenfalls einrichten wollten.
Die heruntergeladenen Pakete speichert die adksetup.exe in den selbst angelegten „Installers“ Ordner.
Die „UserExperienceManifest.xml“ Datei gehört ebenfalls dazu!
Rufen Sie im Anschluss die adksetup.exe auf und wählen Sie den Punkt Bereitstellungstools aus. Klicken Sie auf Installieren. Dieser Prozess kann nun je nach Ihrer Internetanbindung eine ganze Ecke dauern.
Windows PE-Add-On für das Windows 10 ADK 10.1.26100.2454 (Dezember 2024) Download und Installation:
Des Weiteren laden Sie sich auf der Microsoftseite die aktuellste Windows PE-Add-On für das Windows 10 ADK 10.1.26100.2454 (Dezember 2024) für Ihr Betriebssystem herunter.
Klicken Sie unten auf
„Windows PE-Add-On für das Windows 10 ADK 10.1.26100.2454 (Dezember 2024) herunterladen“
Kopieren Sie diese Datei an einen beliebigen Ort und starten Sie dann die adkwinpesetup.exe. Wundern Sie sich nicht, das die Datei nur knappe 2 MB groß ist, denn das ist ein Onlineinstaller. Es werden etliche GB aus dem Internet heruntergeladen werden müssen. Während dem Setup ist es ratsam, alle Dateien für einen anderen Rechner herunterzuladen als Installationsmethode zu wählen, denn dann haben Sie diese Dateien alle und müssten diese nicht erneut herunterladen, wenn sie das auf einem anderen Rechner ebenfalls einrichten wollten.
Die heruntergeladenen Pakete speichert die adkwinpesetup.exe in den selbst angelegten „Installers“ Ordner.
Die „UserExperienceManifest.xml“ Datei gehört ebenfalls dazu!
Rufen Sie im Anschluss die adkwinpesetup.exe auf und wählen Sie den Punkt Windows-Vorinstallationsumgebung (Windows PE) aus. Klicken Sie auf Installieren. Dieser Prozess kann nun je nach Ihrer Internetanbindung eine ganze Ecke dauern.
Wenn das alles installiert wurde haben Sie den Grundstock zur Erstellung Ihres eigenen WinPEs gelegt. Der schwierige Teil jedoch, kommt erst noch. 😛
Bereitstellungstools Icon anlegen
Drücken Sie die Windows Taste + S, um die Windows Suche zu starten. Tippen Sie dort „image“ ein und Sie werden dort „Umgebung für Bereitstellungs- und Imageerstellungstools“ finden. Diesen heften Sie bitte über die Rechte Maustaste an den Start an. Dadurch müssen Sie dieses Tool nicht immer wieder suchen.
Synology – Neuen gemeinsamen/freigegebenen Ordner anlegen: Windows Images Ordnerstruktur
Melden Sie sich bei Ihrer Synology an und erstellen Sie einen neuen gemeinsamen/freigegebenen Ordner für Ihre Windows Images und geben Sie einem Benutzerkonto Rechte diesen lesen zu dürfen. Sie können auch wahlweise einfach ein neues Benutzerkonto anlegen, extra für Windowsinstallationen über Netzwerk. Den Ordner könnten Sie z.b. „WSources“ nennen.
Achten Sie bitte auch auf Groß- und Kleinschreibung.
Für ein flexibles Windowsinstallationsmedium bittet sich eine Ordnerstruktur an, an dessen Sie kinderleicht erkennen können, wo, welche Windows Versionen hineinkommen. Ich empfehle Ihnen auch wirklich diese Ordner so zu benennen, denn das wird Ihnen die weitere Einrichtung durch meine Anleitung erleichtern.
WSources-Root-Ordner:
Win7 Ordner:
Win8 Ordner:
Win10 Ordner:
Windows Server Ordner:
Damit Ihnen nicht langweilig wird, laden Sie sich alle Windows Versionen, die Sie über Netzwerk installieren lassen möchten von Microsoft herunter und entpacken Sie diese ISOs in die jeweiligen, dafür vorgesehenen Ordner. Es ist nicht ratsam die DVD von Ihrer Windows Version zur Hand zu nehmen, da Sie dann das Problem haben, ein sehr altes Windows Build vor sich zu haben, wo aktuelle Updates und Features fehlten. Es ist in solchen Fällen immer die bessere Entscheidung die aktuellste Version von Microsoft zu beziehen, da diese ISOs immer auf dem aktuellsten Patchstand sind. Denn je nachdem wie alt Ihre Windows DVD ist, wird das einen anschließenden Updatemarathon nach sich ziehen.
Hier finden Sie die Übersichtsseite von Microsoft.
Um Windows 10 ISO’s für die Home, Pro und Education Versionen herunterzuladen, verwenden Sie das Media Creation Tool 10 von Microsoft.
Um Windows 8.1 ISO’s für die Home und Pro Versionen herunterzuladen verwenden Sie das Media Creation Tool 8 von Microsoft.
Alternativ können Sie auch die Freeware „Windows ISO Downloader“ herunterladen. Von Windows 7 bis Windows 10 können sie für jede Version eine ISO beziehen.
Wie Ihnen vielleicht aufgefallen ist, habe ich in meiner Struktur keine Trennung nach verschiedenen Sprachen, denn ich persönlich brauche nur die deutschen Versionen. Wenn Sie das zusätzlich noch nach Sprachen trennen wollen, können Sie das natürlich gerne machen, bedeutet aber auch mehr Arbeit 🙂
WinPE Ordner und Dateien kopieren und Treiber falls notwendig einbinden
Ich habe Ihnen ein kleines Paket geschnürt, das Sie sich erst einmal herunterladen werden:
Aktualisiert – 09.02.2025:
- ADK-Paket wurde aktualisiert.
- Intel Treiber Paket auf Version 30.0 aktualisiert
- In der neuesten ADK Version werden alle Arten von x86 Images nicht mehr unterstützt!
Download: W10 ADK-Paket (Erstellt von Stefan Saft)
Sie werden dort ein Verzeichnis mit dem Namen: „PXEServerTools“ finden, das Sie bitte direkt auf „C:\“ kopieren. Die Batch-Dateien speichern Sie bitte irgendwo, wo Sie diese auch jederzeit wiederfinden 😉 Kommen Sie nicht auf die dumme Idee, diese jetzt schon zu starten. Wir müssen erst noch einige Dinge ändern.
Nun zu der Erklärung, was es damit auf sich hat. Schritt für Schritt natürlich.
Der PXEServerTools-Ordner ist äußerst nützlich bei der WinPE Erstellung, da dort gefundene Treiberdateien mit eingebunden werden. Schauen Sie sich den „C:\PXEServerTools\Drivers“ Ordner einfach mal an. Grundlegend müssen bei allen Treibern zwischen 32-Bit und 64-Bit unterschieden werden. Wenn Sie eigene Treiber einbinden wollen, dann erstellen Sie einfach einen weiteren Ordner im x86 und x64 Ordner für Ihre Komponente. Bei RAID Treibern z.b. einen Storage Ordner.
Ich war mal so frei und habe die gängigsten Netzwerktreiber bereits in die Verzeichnisse kopiert. Weitere Treiber sind grundsätzlich auch nicht nötig, denn für unser Vorhaben: „Windows Netzwerkinstallation“ ist es äußerst wichtig, das die Netzwerkkarte immer erkannt wird. Daher ist es zwingend erforderlich, auch möglichst alle Netzwerktreiber einzubinden. Für besondere Storage Konstellationen wie RAID Verbunde oder ähnliches müssten Sie diese Treiber ebenfalls einbinden, damit Windows Ihre Festplatten auch erkennt und somit die Installation überhaupt möglich wäre.
Warum habe ich das mit vordefinierten Ordnern gelöst?
Weil die Befehle die abgearbeitet werden müssten, wenn man das alles manuell in die Bereitstellungskonsole tippt, eine Ewigkeit dauert. Das Ziel ist der Automatismus dieser Abläufe oder haben Sie Lust 50 Befehle in der Bereitstellungskonsole manuell eingeben zu müssen ? Ich nicht und ich denke Sie auch nicht. 😉
Die Startnet.cmd lädt unser späteres Menü, das auch die Verbindung zu der Netzwerkfreigabe herstellen wird.
Kopieren der winpe_menu.cmd
Kopieren Sie zuallererst die winpe_menu.cmd in das WSources-Root-Verzeichnis.
In dieser Datei ist die Menüstruktur mit dem netten Frage- und Antwortspiel hinterlegt, welches Windows installiert werden soll.
Der Vorteil der Trennung und die der Abspaltung aus der Startnet liegt schlicht darin, dass Sie bei Änderungen an der Menüstruktur nicht jedes Mal ein neues WinPE erstellen müssten. Ändern Sie dann einfach die Datei ab und sparen Sie sich die Generierung des WinPEs bei simplen Menüänderungen. Das spart Zeit und sie können schneller Testen und Experimentieren, ob Ihre Änderungen auch funktionieren.
Startnet.cmd editieren
Sie werden außerdem einen Ordner mit dem Namen „Startnet“ finden. In diesem befindet sich die „startnet.cmd“ und zu dieser kommen wir als erstes, bevor wir überhaupt in der Lage sind, das WinPE zu erstellen.
Vorwort: Was macht die Startnet.cmd
Die Startnet.cmd ist eine Datei die beim Starten eines WinPEs immer ausgeführt wird. Diesen Umstand können wir uns zu Nutze machen um die Netzwerkinstallation zu vereinfachen.
Öffnen Sie zunächst diese Datei bitte in einem Editor Ihrer Wahl, denn wir müssen dort einiges ändern!
startnet.cmd:
Suchen Sie als erstes bitte einmal diesen Teil:
set NTIP=192.168.1.5
Diese IP ändern Sie bitte auf Ihre DS IP!
Des Weiteren suchen Sie:
set WindowsShare=WSources
Falls Sie den erstellten gemeinsamen Ordner nicht „WSources“ genannt haben, müssen Sie diesen Teil ändern.
Und nun zu dem mitunter wichtigstem Teil:
set User=installer set Pass=loadwindows
Benutzer: Installer
Passwort: loadwindows
Diese Angaben müssen Sie natürlich ändern. Geben Sie dort den Benutzer mit Passwort an, der das Recht hat auf den gemeinsamen Ordner zugreifen zu dürfen.
Eine Gastfreigabe wäre auch möglich und könnte zum Beispiel so umgesetzt werden:
set User=guest set Pass=none
Ich empfehle Ihnen das trotzdem nicht mit Gastrechten zu machen 😉
Mit dieser Datei sind wir nun auch fertig. Also bitte einmal speichern. Den Rest der Datei können Sie sich natürlich auch mal angucken. Dann erkennen Sie auch wie das ganze Menü aufgebaut ist.
Denn so sieht das nachher einmal aus:



Dort sehen Sie die startnet.cmd und winpe_menu.cmd in Aktion.
CreateWinPE10_x86_x64.cmd Optionen
Dies ist unsere Batch-Datei, die die WinPE-Images erstellen wird.
Öffnen Sie diese bitte mit einem Editor.
Grundlegend ist zu sagen, dass alle Bereiche und dessen Tätigkeiten mit Kommentaren versehen sind. Das sind die REM und :: Einträge = Kommentare.
WinPE Sprache setzen
Was für Sie vielleicht noch interessant wäre, ist dieser Teil:
set WinPE_LCODE=de-DE set WinPE_LDIR=de-de
Dort setzen Sie die Sprache für das gesamte WinPE und dessen Pakete!
Wenn Sie das beispielsweise in Englisch ändern wollen, dann wäre dies die Lösung:
set WinPE_LCODE=en-US set WinPE_LDIR=en-us
Beachtet hierbei unbedingt, das hier keine Unterstriche verwendet werden! Es sind normale Bindestriche!
Wem dieses Malheur dennoch passiert ist, muss den fehlgeschlagenen Versuch mit:
dism.exe /Unmount-Wim /MountDir:"C:\WinPE_x64\mount" /Discard
wieder entladen.
BitLocker-Unterstützung aktivieren (Optional)
Für die Unterstützung von BitLocker verschlüsselten Festplatten editieren Sie die Datei wie folgt:
Suchen Sie:
set WinPE_BITLOCKER=0
und ändern Sie die 0 in eine 1.
iSCSI-Unterstützung aktivieren (Optional)
Für die Unterstützung von iSCSI Verbindungen editieren Sie die Datei wie folgt:
Suchen Sie:
set WinPE_iSCSI=0
und ändern Sie die 0 in eine 1.
Benutzerdefinierten WinPE Hintergrund aktivieren (Optional)
Um den Standard WinPE Hintergrund zu überschreiben, aktivieren Sie diesen Eintrag:
Suchen Sie:
set WinPE_Background=0
und ändern Sie die 0 in eine 1.
Nützliche Programme ins WinPE einbinden (Optional)
Um nützliche Hardwaretools&Programme einzubinden, aktivieren Sie diesen Eintrag:
Suchen Sie:
set WinPE_Additional_Apps=0
und ändern Sie die 0 in eine 1.
CreateCustomBCD_WinPE_BIOS_AND_UEFI_X64.cmd Erklärung
Viel gibt es hier nicht zu sagen. Das wird unsere Boot Configuration Data Datei. Diese Datei können Sie sich auch mal in Ruhe angucken. Diese ist ebenfalls mit Kommentaren versehen und sollten Sie vorhaben weitere Einträge hinzuzufügen, sollte dies ein leichtes sein, denn die Vorgabe haben Sie bereits.
Damit Sie im UEFI Modus und eingeschaltetem Secure Boot das Menü angezeigt bekommen ist noch folgende Änderung in dieser Datei notwendig, die Sie ganz unten einfügen:
REM UEFI Secure Boot Signatur ANFANG bcdedit -store C:\BCD -set {bootmgr} path \Boot\bootmgr.efi REM UEFI Secure Boot Signatur ENDE
Im Hyper-V-Manager zum Beispiel klicken Sie dafür auf eine VM und dann auf Einstellungen und stellen es wie auf dem Bild zu sehen ist ein:

WinPEs erstellen
Nun sind wir endlich an dem Punkt angekommen die WinPEs in Auftrag zu geben.
Starten Sie nun das Tool „Umgebung für Bereitstellungs- und Imageerstellungstool“ mit Administratorrechten, das Sie anfangs an den Start angeheftet hatten.
Navigieren Sie nun über den „cd Ordnername“ Befehl zu dem Ort, wo Sie die Datei „CreateWinPE10_x64.cmd“ gespeichert haben.
Starten Sie diese Datei. Dieser Vorgang kann etwas dauern. Also heißt es nochmal…. Kaffee machen 🙂
Wenn der Vorgang abgeschlossen ist, werden Sie feststellen, dass Sie unter C:\ einen weiteren Ordner finden werden => C:\PXEServer
Hier liegen nun die WinPE-ISO’s, als auch die WinPE-Wim-Dateien und die Bootmanager Dateien wie boot.sdi, pxeboot.n12, bootmgr.exe und die MUI Sprachpakete.
WinPE Dateien auf den TFTP Server transferieren
Das Gröbste haben wir nun hinter uns. Jetzt geht es darum die Dateien auch startbar aus unserer Syslinux Umgebung zu machen.
Erstellen Sie zunächst einen Ordner „Winpe“ im „images“ Ordner Ihres TFTP Servers.
Innerhalb des „Winpe“ Ordners einen weiteren der „WinPE10.0“ heißt.
Kopieren Sie nun folgende Dateien alle in den“WinPE10.0“ Ordner auf Ihren TFTP Server (images\Winpe\WinPE10.0):
C:\PXEServer\BootSources\ISO\WinPE_x64.iso C:\PXEServer\BootSources\WinPE_x64.wim
Kopieren Sie als nächstes folgende Dateien direkt in das TFTP ROOT Verzeichnis:
C:\PXEServer\Boot64\bootmgr.exe C:\PXEServer\Boot64\pxeboot.n12(Nach dem kopieren bitte in pxeboot.0 umbenennen!)
Erstellen Sie im TFTP Root Verzeichnis noch folgende Ordnerstruktur:
\Boot\ \Boot\de-DE\ \Boot\Fonts\ \Boot\resources\ \EFI\ \EFI\Microsoft\ \EFI\Microsoft\Boot\ \EFI\Microsoft\Boot\de-DE\ \EFI\Microsoft\Boot\Fonts\ \EFI\Microsoft\Boot\resources\
Kopieren Sie nun folgende Dateien in das \Boot\de-DE\ Verzeichnis auf Ihren TFTP Server:
C:\PXEServer\Boot64\de-DE\bootmgr.efi.mui (Bitte in bootmgr.efi.MUI umbenennen!) C:\PXEServer\Boot64\de-DE\bootmgr.exe.mui (Bitte in bootmgr.EXE.MUI umbenennen!)
Kopieren Sie nun folgende Datei in das \Boot\ Verzeichnis auf Ihren TFTP Server:
C:\PXEServer\Boot64\boot.sdi
Kopieren Sie nun von dem Rechner auf dem das ADK installiert ist, folgende Dateien in den \Boot\Fonts\ und \EFI\Microsoft\Boot\Fonts\ Ordner auf den TFTP Server:
Die Font-Dateien sind für den BIOS- als auch den UEFI-Modus identisch.
C:\Windows\Boot\Fonts\ ALLE DATEIEN!
Kopieren Sie folgende Dateien in den TFTP Root Ordner:
C:\Windows\Boot\EFI\bootmgfw.efi (Bitte in bootx64.efi umbenennen!)
Kopieren Sie außerdem noch folgende Dateien in den TFTPROOT\Boot\ Ordner:
C:\Windows\Boot\EFI\bootmgr.efi
Mounten Sie nun bitte einmal die WinPE_x64.iso mit „Öffnen mit“ und dann Windows Explorer.
Kopieren Sie aus dem ISO folgende Dateien in den TFTP ROOT Ordner:
DVDROM\EFI\Boot\bootx64.efi
Kopieren Sie aus dem ISO folgende Dateien in den TFTPROOT\Boot\ Ordner:
DVDROM\Boot\BCD (Bitte in BCD_Wimboot umbenennen!)
iPXE Konfigurationseinträge erstellen
Fügen Sie folgende Zeilen in der pxeEFI32.ipxe.cfg und pxeEFI64.ipxe.cfg Datei ganz unten an:
# OPTIONAL: Windows 10 Build Nummer set win10-build 23H2
iPXE Booteinträge erstellen
Suchen Sie nun in der pxeEFI64.ipxe.menu:
menu Installationsumgebungen - Client: ${ip} ${platform}_${buildarch}
Fügen Sie darunter folgendes ein:
item --gap -- ----- Windows Installationen ----------------------------------------------------------------------- item --key 6 winpe10_x64 WinPE 10.0 Build ${win10-build} 64-Bit - Wimboot
Suchen Sie weiter:
:menu-install-timed choose --timeout ${submenu-timeout} --default ${submenu-default} selected && goto ${selected} || goto start
Fügen Sie darunter folgendes ein:
:winpe10_x64 echo ${cname}Wimboot - Starte WinPE 10.0 Build ${win10-build} 64-Bit ${reset} kernel ${boot-url}wimboot initrd ${boot-url}bootx64.efi initrd --name BCD ${boot-url}Boot/BCD_Wimboot initrd ${boot-url}Boot/boot.sdi boot.sdi initrd --name boot.wim ${boot-url}images/Winpe/WinPE10.0/WinPE_x64.wim boot || goto failed goto start
Manche werden sich vielleicht wundern, warum ich immer auf die selben Dateien verweisen lasse und lediglich die WIM-Datei und bootx64.efi das Einzige ist, dass sich wirklich unterscheidet. Ich benutze hier für alle WinPEs die gleichen Dateien: boot.sdi, BCD, bootx64.efi.
Es ist nämlich meistens nicht nötig die originalen der ISOs zu nehmen. Wenn die WinPEs alle mit der gleichen Windows- und ADK Version erstellt wurden, dann funktionieren diese Dateien auch in allen anderen WinPE Versionen. Selbst wenn Ihr WinPEs älterer Generation nutzt, so geht das in 90% der Fälle trotzdem. Spart euch also das unnötige Anlegen dieser Dateien für all eure WinPEs im Sortiment. Außerdem lässt sich das so auch viel einfacher aktuell halten.
Sollte wirklich mal der Fall eintreten, dass irgendein Programm mit den gennanten Standarddateien von oben nicht funktioniert, dann verweist halt auf die originalen des betroffenen WinPEs.
Das wäre dann das Resultat (Ohne den Ubuntu Eintrag darüber!):

CreateCustomBCD_WinPE_BIOS_AND_UEFI_X64.cmd ausführen
Starten Sie die Eingabeaufforderung mit Administratorrechten und führen Sie dieses Skript bitte einmal aus. Danach finden Sie eine BCD Datei unter C:\ die Sie bitte an folgenden Ort verschieben:
TFTPROOT\Boot\
PXELinux 6.04-pre1 Booteinträge erstellen
Öffnen Sie die pxelinux.cfg/default_BIOS und suchen Sie nach:
KBDMAP german.kbd
Fügen Sie direkt darunter folgendes ein:
############################################################## #Windows Section ############################################################## LABEL WindowsSysteme MENU LABEL Windows Installation: MENU DISABLE MENU BEGIN MENU TITLE + Windows Installations Service LABEL Original MENU LABEL Microsoft Windows PE Images: MENU DISABLE LABEL WinPE50X64ISO MENU LABEL 2. WinPE10.0 64-Bit - MemDisk ISO (Windows 10) MENU INDENT 2 COM32 linux.c32 memdisk APPEND iso raw INITRD images/Winpe/WinPE10.0/WinPE_x64.iso TEXT HELP Es wird die Windows Vorinstallations Umgebung 10.0 (Windows 10) im 64 Bit Modus geladen mit allen Netzwerktreibern. Die WinPE Versionen sind abwaertskompatibel. Es ist Ihnen moeglich mit der WinPE 10.0 Version auch aeltere Windows Versionen zu installieren. Es wird automatisch das Netzwerkshare zu den Windows Images aufgebaut. ENDTEXT LABEL WinPE50X32X64MGR MENU LABEL 3. WinPE10.0 32-Bit + 64-Bit - BootMGR (Windows 10) MENU INDENT 2 KERNEL pxeboot.0 TEXT HELP Es wird die Windows Vorinstallations Umgebung 10.0 (Windows 10) im 64 Bit oder 32 Bit Modus geladen mit allen Netzwerktreibern. Die WinPE Versionen sind abwaertskompatibel. Es ist Ihnen moeglich mit der WinPE 10.0 Version auch aeltere Windows Versionen zu installieren. Es wird automatisch das Netzwerkshare zu den Windows Images aufgebaut. ENDTEXT MENU SEPARATOR LABEL return_main MENU LABEL - ^Zum Hauptmenu MENU INDENT 1 MENU EXIT MENU END
Ich habe Ihnen dort ein Beispiel mit Memdisk und das Beispiel des Umwegs über den BootMGR gemacht. Ich persönlich empfehle Ihnen Memdisk zu meiden, da Sie gerade in Bezug auf die Geschwindigkeit mit dem BOOTMGR schneller sind und nicht solange warten müssten. Außerdem haben Sie dort einen schönen Balken der verdeutlicht, wie viel noch transferiert werden muss!

Der Test
Booten Sie nun einen Rechner über Netzwerk und Sie sollten im BIOS Modus das Syslinux Menü sehen und es Ihnen auch möglich sein, den Windows-Boot-Manager Eintrag zu starten und Windows installieren zu können. Im EFI Modus werden Sie in das iPXE Menü booten. Testen Sie auch jeden Eintrag, ob auch alles funktioniert. Eine Testinstallation im EFI Modus in einer VM schadet vielleicht auch nicht 😉
Sollten Sie noch Fragen haben, so nutzen Sie einfach die Kommentarfunktion.
Hi,
erstmal vielen Danke für die gute Anleitung!
Nach dem durchführen der kompletten Anleitung habe ich aber nun das Problem, dass ich ins Syslinux komme aber nicht in den Windows Boot Manager. Es passiert im Prinzip gar nix wenn ich auf den Abschnitt „WinPE10.0 x64 & x32 Bit – BootMGR (Windows 10)“ klicke .
Es geht um einen aktuellen Fujitsu Rechner mit UEFI & Secure Boot ist ausgeschaltet. Der PC unterstützt auch nicht mehr den Legacy Modus weshalb es unter UEFI laufen muss.
Das ist mein erster PXE Server deswegen bin ich auch noch etwas frisch in der Materie.
Weil es leider so ist, dass man aus dem Syslinux UEFI Menü nicht den Windows-Boot-Manager aufrufen kann. Das geht leider nur im Legacy Modus – und den hast du dummerweise nicht mehr auf deinem PC. Du wirst leider direkt den WBM aufrufen müssen im UEFI Modus statt des Syslinux UEFI Menüs. Geht halt nicht anders derzeit. Dies wurde auch in der Anleitung erklärt. Du musst also die bootx64.efi verteilen für UEFI Clients. Nicht die pxelinuxEFI64.efi.
Hallo,
haben meinen PXE auch soweit am laufen. Das Startmenü mit den verweis auf das WinPE funktioniert. Leider bekomme ich eine Fehlermeldung beim starten des WinPE. Und zwar kann er die verbindung mit den Zielserver (NAS) nicht herstellen. Ich habe schonmal die startnet.cmd geschaut. Die IP des NAS stimmt. Benutzernamen und Passwort auch. Freigabe stimmt auch.
Kann es sein das es mit den SMB Versionen zusammen hängt? Das NAS (DLINK 320L) unterstützt nur SMB Version 1. Windows fordert aber glaub ich die Version 2 oder neuer.
Jemand eine Idee?
Danke und liebe Grüße
Marcel
Ich habe es nicht getestet, sondern nur mal auf die schnelle recherchiert.
Du müsstest dafür die CreateWinPE10_x86_x64.cmd bearbeiten:
Über die Zeile:
:: Startnet X86!
fügst du folgendes ein:
Und über die Zeile:
:: Startnet X64!
das hier:
Danach musst du natürlich nochmal das ganze Script ausführen und im Anschluss die neuen WinPE Images verteilen.
Danke, das werde ich versuchen und melde mich zurück sobald es getestet wurden ist!
Viele Grüße
Marcel
Moin!
Erstmal vorweg, super Anleitung. Gemäß deiner Anleitung habe ich soweit alles eingerichtet, abweichend davon verwende ich jedoch eine FritzBox (Gateway, DHCP und DNS, einen Rasperry Pi4 mit openmediavault als NAS und darauf läuft dnsmasq (deaktivierter DNS, DHCP-Proxy, TFTP-Server).
Über eine frische Hyper-V VM klappt alles wunderbar, bei echter Hardware jedoch scheitert es.
Das sind die einzigen beiden Einträge wenn echte Hardware gestartet wird (1xPC und 2x Laptop getestet) (Natürlich via LAN verbunden und PXE auch in der Bootreihenfolge an erste Stelle gesetzt.
Hast du vllt. einen Hinweis für mich?
Mir fehlen ehrlich gesagt noch ein paar Informationen.
1. Was genau bedeutet die Aussage: „….bei echter Hardware jedoch scheitert es.“ Was passiert denn da? Der sucht nach einem DHCP Server und nichts passiert? Er bezieht eine Adresse, lädt aber das Menü nicht? Er überspringt den Part komplett und startet das normale Betriebssystem? Was siehst du auf den jeweiligen Clients?
2. Welchen Modus hast du denn getestet? Legacy/BIOS oder UEFI? Hast du die Probleme in jedem Modus?
3. In der VM laufen beide Varianten? Legacy/BIOS und UEFI?
Mit echter Hardware ist gemeint-> ein richtiger PC und keine VM. Hab mich da vllt. missverständlich ausgedrückt.
Es passiert dabei folgendes, PXE startet, aber es passiert nichts, es wird keine IP zugewiesen wie mir scheint. Und weil PXE erfolglos bleibt startet dann als nächstes die SSD.
Getestet habe ich bislang UEFI auf 1x PC und 2x Laptop.
In der VM laufen wunderbar beide Varianten, sowohl Legacy als auch UEFI.
Was du mit echter Hardware meintest war mir klar. Mir ging es auch eher darum, dass du mir erklärst, was das: „…scheitert es.“ bedeutet. 🙂
Das hast du ja jetzt getan. Tja, mich wundert es ehrlich gesagt auch ein wenig warum die VM funktioniert, aber echte Rechner nicht. Da ich die Netzwerksituation bei Dir auch nicht kenne, weiß ich auch gar nicht, ob das alles richtig verbunden ist und ob die Geräte auch alle im selben Netz/Subnetz hängen. Wenn Du Dir sicher bist, dass alles richtig verbunden ist, dann muss an der Konfiguration irgendwas faul sein, die, warum auch immer, nur in der VM funktioniert.
Welche IPs haben denn alle Geräte bei Dir? Wie sieht die dnsmasq.conf Konfigurationsdatei aus?
Funktioniert der DHCP Server überhaupt noch? Bitte mal testen!
Auf irgendeinem Client mit Windows, der die Adressen über DHCP bezieht, bitte mal die Adresse erneuern lassen. Die alte Adresse vorher merken.
und dann noch ein:
eingeben in der Eingabeaufforderungen oder halt in der PowerShell. Bekommt der Client dann eine neue Adresse?
Hallo Stefan,
Habe heute einmal alles auf meiner DS218+ bis hier installiert! was für ein Maraton 😉
Was mir bis Dato aufgefallen ist möchte ich kurz zusammen fassen.
1.) wenn ich eine Installation mit der Installationsumgebung mache wird mir nicht die Build Nr 2004 oder 1909 oder 1903 wie bei dir angezeigt (Bei mir steht nur Winpe 10.0 64-Bit -Wimboot)
2.)möchte ich dann diese starten bekomme ich eine Fehlermeldung das Im Pfad \\IPvon Synology\pxe\images\WinPE10.0\ nichts zu finden ist, hab dann das Winpe weggelassen und die installation beginnt, jedoch bekomme ich nach einiger Zeit eine Fehlermeldung das ddie Verbindung nicht hergestellt werden konnte, stellen Sie sicher das der Zielserver erreichbar ist und die Logindaten stimmen (login daten habe ich vorerst guest und none genommen)
3.) wo ändere ich die Menü farben also nicht gelb und grün sondern z.B. rot und blau damit es zu meinen Hintergrundbild passt?
4.)Wie liese sich Windows 10 Build 1809 + 1903 +1909 + 2004 installieren da es ja nur einen WSources Ordner für Windows 10 Home und Pro X64 gibt und da müsste ich ja dann alle Builds rein kopieren welches ja nicht funzt oder?
Vielen Dank für deine großartige Anleitung, und vielleicht kannst Du mir den eine oder anderen Tip geben was ich falsch mache
Danke vorab
VG Roland
Nachtrag zu Punkt 2:
Zum Fehler das die Verbindung nicht hergestellt werden konnte und die Login daten nicht stimmen habe ich wohl einen Fehler gemacht, ich habe die richtige Startnet.cmd nicht editiert….aber wenn ich die nun ändere was muss ich dann alles wiederholen, laut deiner Anleitung wir die Datei nur geändert aber nicht ausgeführt oder sehe ich vor lauter Bäume den Wald nicht mehr……puh war ganz schön viel heute!
Danke für deine Meldungen.
1) Das hatte ich schlicht weggelassen. Ich habe das bei mir auch alles etwas anders gemacht, als ich in der Anleitung selbst unterbreite. Du kannst aber trotzdem jederzeit die Einträge abändern wie du möchtest! Wenn dir der Name eines Eintrags nicht gefällt, dann ändere ihn ab 😛 Es sind ja nur Beispiele.
2) Fehler in der Anleitung. Habe es korrigiert. Du musst dann wieder die WinPEs erstellen lassen mittels der Datei: CreateWinPE10_x86_x64.cmd und danach die neuen WIMs und ISOs wieder in die dafür vorgesehenen Verzeichnisse kopieren . Das kannst du ja dann aus der Anleitung entnehmen wie das nochmal genau geht.
3) Die Menüfarben änderst du in den Dateien:
ab.
Dort findest du immer diesen Block:
Du musst lediglich immer die Hex Farben ändern. Die Standardfarbe wäre hier also: ffc05f
Woher du die Farbwerte bekommst? Gehe einfach auf diese Seite hier: https://www.color-hex.com/ und kopiere einfach die Farben oben rein, dann weißt du um welche es sich handelt und welcher Bereich auf meinen Beispielbildern damit abgedeckt wird.
4) Ich habe das bei mir etwas anders gemacht. Wenn man sich beispielsweise über das MCT Tool Windows 10 herunterlädt, dann beinhalten die ISOs immer die Home, Pro und Education Version. Ich habe für diese 3 Versionen also lediglich 1 Ordner für jede Architektur. Da ich stets nur die neuesten Build Versionen nutze, habe ich das auch nicht weiter unterteilt. Du könntest aber in den Ordnern weitere erstellen mit den Buildnummern als Namen und die Struktur schlicht eine Ebene nach unten verschieben.
Beispiel:
LW:\Win10\Windows 10 Home und Pro und Education X32\ => I:\Win10\Windows 10 Home und Pro und Education X32\2004\
Wie du das machst kannst du Dir ja selbst überlegen. Danach lediglich die winpe_menu.cmd Datei abändern und das Menü selbst um die neuen Optionen erweitern. Dort sind genug Beispiele um zu verstehen wie das im Detail funktioniert. Guck es Dir einfach mal an; es ist keine Raketenwissenschaft. 🙂
super Stefan du bist der Beste 😉
vielen Dank nochmals für deine tolle Arbeit
VG Roland
Ps.bin gespannt wie das mit DSM 7.0 in ein paar Monaten laufen wird
Hallo Stefan,
ich habe nochmals alles von CreateWinPE10_x86_x64.cmd Analyse bis Einschließlich CreateCustomBCD_WinPE_BIOS_AND_UEFI_X86_X64.cmd ausführen neu gemacht aber dennoch bekomme ich folgenden Fehler
Ein Fehler ist aufgetreten!
Die Verbindung konnte nicht hergestellt werden!
Stellen Sie sicher das der Zielserver erreichbar ist
und die Logindaten stimmen.
Wenn der Server erreichbar ist oder das Problem behoben
wurde bitte eine beliebige Taste druecken um es erneut zu
versuchen.
Zum Abbrechen des Batchvorgangs bitte STRG+C druecken!
Was mach ich falsch?
Ps. In welcher Datei wird das Ergebniss der Startnet.cmd verarbeitet? (WinPE_x86, WinPE_x64.wim)
Breche einfach den Vorgang mit STRG+C ab und teste erst einmal die Netzwerkfunktionalität:
Wenn das nicht klappt, dann fehlt für deine Netzwerkkarte höchstwahrscheinlich der Treiber im WinPE.
Wenn der Pingbefehl funktioniert bitte mal das hier testen:
Die von mir großgeschriebenen Stellen musst du austauschen.
Er sollte dich dann eigentlich nach dem Passwort fragen. Das macht er aber nur, wenn er eine Verbindung zu dem Server aufbauen kann und die Freigabe auch existiert. Du bekommst in allen Fällen jedenfalls eine Rückmeldung. Daran können wir dann vielleicht ableiten, woran es nun scheitert.
Erst einmal vielen Dank für den Update Deiner Beschreibung. Aber mit dem Test der Netzwerk-Konnektivität im startnet.cmd bist Du wohl etwas über das Ziel hinausgeschossen. Der ping-Parameter „-l 2000“ beschreibt die Größe des Sendepuffers. Ich bin kein Netzwerker, aber wenn ich diesen Parameter auf die gängige MTU-Größe von 1472 reduziere, läuft auch der Netzwerktest in der startnet.cmd wieder sauber.
Danke. Stimmt. Werde es auf 1472 Bytes reduzieren. Ich hatte in dem Moment einfach nicht darüber nachgedacht. Vielen Dank.
Hallo, Stefan.
Zu Deinem jüngst eingebauten Test der Netzwerk-Konnektivität im startnet.cmd muß ich meinen Einwand wegen des ping-Parameters -l 2000 präzisieren. Ich hatte meine Synology-Netzwerkeinstellungen auf Jumbo-Frames eingestellt. Wie ich nun weiß, werden Jumbo-Frames von der Fritz!Box nicht unterstützt, siehe https://avm.de/service/fritzbox/fritzbox-7590/wissensdatenbank/publication/show/341_Unterstutzt-die-FRITZ-Box-ubergrosse-Paketlangen-Jumbo-Frames/
Daher bekam Dein ping einen Timeout.
Meine Angabe wäre sowieso ungünstig gewesen, da der maximal setzbare MTU Wert für Ethernet v2 Verbindungen ohne Jumbo Paket, 1500 Bytes mit Headerdaten (ICMP + IPv4) beträgt. Hinzu kämen noch weitere insgesamt 18 Bytes für die Sicherungsschicht (14 Bytes) und die Prüfsumme (4 Bytes). Ergibt maximal 1518 Bytes. Wenn die Nutzlast also 1473 Bytes beträgt, passt das nicht mehr in ein einziges Ethernet Frame. Es wäre also fragmentiert, da man 2 Frames schicken müsste. Das macht sich vor allem bei Datenübertragungen negativ im Datendurchsatz bemerkbar. Windows benutzt in der Standardkonfiguration auch den MTU Wert 1500. Da sind die 28 Bytes Headerdaten aber bereits mit eingerechnet. Die Nutzlast läge also auch dort bei 1472 Bytes. Das ist mitunter ziemlich verwirrend, weil manche Hersteller den MTU Wert ohne Headerdaten ausgeben und manche mit. Da weiß man nie woran man ist 😀
Mit meinem Wert wären die Pakete also immer fragmentiert worden. Das sollte man nach Möglichkeit immer vermeiden.
Ping funktioniert einwandfrei, Passwort wird auch verlangt jedoch wenn ich das Passwort eingebe Bekomme ich eine Fehlermeldung die da lautet
Systemfehler 67 aufgetreten, Der Netzwerkname wurde nicht gefunden, das passiert sogar auch wenn ich mich als Admin anmelden möchte!
Installation auf meiner DS:
TFTP Root ist bei mir \\IP DS\volume1\Pxe
\\IP DS\volume1\Pxe\images\
\\IP DS\volume1\Pxe\WSources\
Der Gemeinsamme Ordner Pxe sowie images & WSources hat der getestete User und der Admin lese & schreib Rechte, und der guest nur Lese Rechte, und ich habe eine NFS Regel lt. deiner Anleitung erstellt
G Roland
ups mein Fehler sry, ich hatte versucht eine Verbindung herzustellen auf
net use v: \\IP\volume1\PXE /user:IP\USER das hat nicht funktioniert
aber mit
net use v: \\IP\PXE /user:IP\USER funktioniert es und ich sehe den ganzen inhalt des Ordners….
Hallo Stefan,
bekomme noch immer diesen Fehler
Ein Fehler ist aufgetreten!
Die Verbindung konnte nicht hergestellt werden!
Stellen Sie sicher das der Zielserver erreichbar ist
und die Logindaten stimmen.
Wenn der Server erreichbar ist oder das Problem behoben
wurde bitte eine beliebige Taste druecken um es erneut zu
versuchen.
Zum Abbrechen des Batchvorgangs bitte STRG+C druecken!
Wenn ich hier abbreche und dann folgendes eintrage net use v: \\%NTIP%\%WindowsShare% /user:%NTIP%\%User% %Pass% bekomme ich folgenden Fehler
Systemfehler 86 aufgetreten
Das angegebene Netzwerkkennwort ist falsch
ok dann hab ich es manuel versucht
Dann kommt die Aufforderung für das Passwort das ich dann eingebe (dasselbe steht auch in der C:\PXEServerTools\Startnet\startnet.cmd drinnen und mein laufwerk wird sofort verbunden und ich kann die winpe_menu.cmd starten
Inhalt von meiner startnet.cmd
Was mach ich falsch, hab die CreateWinPE10_x86_x64.cm schon ca 6x neu ausgeführt…
Du benutzt die falsche Freigabe. Laut der Anleitung müsstest du zwei gemeinsame Ordner haben:
Du benutzt aber immer:
Also hast du den gemeinsamen Ordner „WSources“ nicht erstellt, sondern einfach einen normalen Ordner im pxe Ordner mit dem Namen WSources erstellt? Da du das mit allerhöchster Wahrscheinlichkeit eben nicht gemacht hast, stimmt die dir angezeigte Meldung auch!
Man kann außerdem nicht einen gemeinsamen Ordner in einem anderen gemeinsamen Ordner ablegen. Das funktioniert nicht.
Der PXE Ordner ist ein separater gemeinsamer Ordner und der WSources Ordner ebenso.
Bei Dir müsste in der startnet.cmd also demzufolge einfach nur das hier stehen:
und mit den Benutzerkontodaten, den du dafür extra angelegt hast. Kannst natürlich auch den Adminaccount nehmen (Der darf immer alles), dann würde ich aber nicht das Passwort in die startnet.cmd schreiben lassen. Wäre ungünstig, da der alles darf und jeder der das WinPE bootet nachgucken kann, welches Passwort du verwendest. Deswegen auch mein Tipp einen harmlosen Nutzeraccount mit nur Leserechten auf diesen einen Ordner zu setzen.