Ich möchte gerne Windows 10 über das Netzwerk installieren. Die Laptops haben ein Biospasswort was ich nicht kenne und starten nur im EFI Modus und mit SECURE BOOT enabled.
So hab ichs gelöst. Wir brauchen das Windows ADK in der für die aktuelle Windows 10 Version passenden Version (z.B. ist für 1909 das ADK 1903 das richtige) https://docs.microsoft.com/en-us/windows-hardware/get-started/adk-install
Eine aktuelle Version von tftpd32 (gerne in der 64 Bit Version) http://www.tftpd64.com/
Ausserdem ein Windows 10 ISO (MEDIA CREATION TOOL)
Wir halten uns lose an diese Anleitung von Microsoft, auch wenn die eigentlich für LEGACY BIOS Boot ausgelegt ist (auch wenn das da nicht steht) https://docs.microsoft.com/de-de/windows/deployment/configure-a-pxe-server-to-load-windows-pe
Wir installieren die Umgebung für die Bereitstellungs- und Imageerstellung des ADK.
Danach starten wir diese ALS ADMIN. Mit dem folgenden Befehl erstellen wir uns ein Windows PE für 64 BIT
copype.cmd amd64 C:\winpe_amd64
Anschließend laden wir das boot.wim, welches das eigentlich zu startende Windows enthält, in ein Verzeichnis ( C:\winpe_amd64\mount ) und stellen die Sprache um (ungetestet von hier )
Dism /mount-image /imagefile:c:\winpe_amd64\media\sources\boot.wim /index:1 /mountdir:C:\winpe_amd64\mount dism /image:C:\winpe_amd64\mount /set-inputlocale:de-de;en-us
Wir entpacken nur TFTPD32 nach C:/tftpd32 und sehen zu, dass alle Dateien in diesem Ordner liegen und nicht in einem Unterordner. Anschließend erstellen wir im Ordner tftpd32 den Ordner TFTPDRoot (sodass wir den Ordner C:/tftpd32/tftpdroot erstellt haben). Diesen Ordner geben wir nun schreibend im Netzwerk frei. Das ist offensichtlich für Produktivumgebungen nicht so KLUK, aber für uns reichts.
Wir testen anschließend, ob wir uns mit diesem Laufwerk Verbinden können
net use y: \\PCNAME\TFTPDroot
Jetzt sollte unser Laufwerk Y: den Inhalt des Ordners TFTPDRoot anzeigen (in dem zur Zeit noch nichts drin ist.) Erstellen wir also schnell einen Ordner Boot. Anschließend kopieren wir einen Schwung Dateien aus dem Windows PE Verzeichnis in das TFTPDRoot/Boot und speichern die Änderung der Sprache in die boot.wim
copy c:\winpe_amd64\mount\windows\boot\pxe\*.* y:\Boot copy c:\winpe_amd64\mount\windows\boot\EFI\bootmgfw.efi y:\Boot dism /unmount-wim /mountdir:C:\winpe_amd64\mount /commit copy C:\winpe_amd64\media\boot\boot.sdi y:\Boot copy C:\winpe_amd64\media\Boot\Fonts y:\Boot\Fonts copy C:\winpe_amd64\media\sources\boot.wim y:\Boot
Jetzt müssen wir den BCD Eintrag erstellen:
bcdedit /createstore c:\BCD bcdedit /store c:\BCD /create {ramdiskoptions} /d "Ramdisk options" bcdedit /store c:\BCD /set {ramdiskoptions} ramdisksdidevice boot bcdedit /store c:\BCD /set {ramdiskoptions} ramdisksdipath \Boot\boot.sdi bcdedit /store c:\BCD /create /d "winpe boot Image efi" /application osloader
Der letzte Befehl gibt eine GUID zurück, z.B. {215fe947-3616-11ea-a770-d850e6d1308f}. Ihr müsst im folgenden Codeblock alle {GUID} durch EURE GUID ersetzen.
bcdedit /store c:\BCD /set {GUID} device ramdisk=[boot]\Boot\boot.wim,{ramdiskoptions} bcdedit /store c:\BCD /set {GUID} path \windows\system32\winload.efi bcdedit /store c:\BCD /set {GUID} osdevice ramdisk=[boot]\Boot\boot.wim,{ramdiskoptions} bcdedit /store c:\BCD /set {GUID} systemroot \windows bcdedit /store c:\BCD /set {GUID} detecthal Yes bcdedit /store c:\BCD /set {GUID} winpe Yes bcdedit /store c:\BCD /create {bootmgr} /d "boot manager" bcdedit /store c:\BCD /set {bootmgr} timeout 30 bcdedit /store c:\BCD -displayorder {GUID} -addlast
Anschließend müssen wir die BCD Datei über das Netzwerk in den Bootordner kopieren
copy c:\BCD \\PCNAME\TFTPDRoot\Boot\BCD
Jetzt können wir prüfen ob wir alles richtig gemacht haben und uns den Inhalt der BCD Datei anzeigen lassen, z.B. mit
bcdedit /store C:\tftpd\tftpdroot\Boot\BCD /enum all
Windows Boot Manager identifier {bootmgr} description boot manager displayorder {215fe947-3616-11ea-a770-d850e6d1308f} timeout 30 Windows Boot Loader identifier {215fe947-3616-11ea-a770-d850e6d1308f} device ramdisk=[boot]\Boot\boot.wim,{ramdiskoptions} path \windows\system32\winload.efi osdevice ramdisk=[boot]\Boot\boot.wim,{ramdiskoptions} systemroot \windows Setup Ramdisk Options identifier {ramdiskoptions} description Ramdisk options ramdisksdidevice boot ramdisksdipath \Boot\boot.sdi
So oder so ähnlich sollte es aussehen.
Dann haben wir es schon fast geschafft. Wir müssen nur noch kurz TFTPD32 starten und einstellen. Wir müssen unserem PC eine feste IP Adresse geben (192.168.123.1) und uns, wenn möglich, vom Internet trennen. Dann kann der zu installierenden Laptop entweder direkt (hat bei mir Probleme verursacht) oder über eine Switch angeschlossen werden.
Die Einstellungen für TFTPD32 sehen wie folgt aus:
Unter Logview und TFTP Server kann der Status der Installation dann verfolgt werden.
Nachdem die Windows PE Version dann gestartet ist, kann das Windows 10 ISO gemountet (Bereitgestellt) werden und dann über das Netzwerk freigegeben werden. Anschließend kann in der Windows PE Version per net use die Freigabe gemountet werden (Credentials werden dort abgefragt, wenn vorhanden) und die Windows Version per Setup.exe gestartet werden. Der Rest der Windowsinstallation ist dann wie gewohnt!