28. Februar 2021

Windows 10 USB Stick für Jedermann (KEIN RUFUS)

english version

USB Creator Tool Anleitung

In diesem Tool habe ich einen – hoffentlich nachvollziehbaren – einfachen aber  von MSFT „fully supported“ Ansatz gewählt.

Das Teil hat vor etlichen Monaten mit einem simplen PowerShell Skript angefangen.

Parallel dazu haben Michael Niehaus und Johan Arwidmark offensichtlich an etwas Ähnlichem gearbeitet, was uns natürlich angeregt & bestätigt hat 😊

Blog von Johan:

A Blast From The Past – Jurassic Deployment – Deployment Research

Blog von Michael:

Booting your own Windows PE image – Out of Office Hours (oofhours.com)

Voraussetzungen

Das Tool funktioniert nur unter folgenden Voraussetzungen:

  1. Man hat FULLY Local Admin Rechte auf der Box, wo man das Tool nutzen möchte (PowerShell oder PowerShell ISE als ADMIN starten, Execution-Policy muss mindestens „RemoteSigned“ sein)
  2. Aktuelles ADK für Windows 10 ist installiert
  3. Aktuelles WinPE Addon für ADK Windows 10 ist installiert
  4. Aktuelles PowerShell (Host 5.x aufwärts) ist am Start
  5. .Net Framework 4.7 aufwärts ist installiert (Bestandteil von PS 5.0)

ADK für Windows 10

http://go.microsoft.com/fwlink/p/?LinkId=526740&ocid=tia-235208000

Das Tool checked das Vorhandensein der üblichen Installations-Verzeichnisse der o.g. Komponenten 😊

Es baut (u.a.) auch ein frisches neues WinPE X64 Root Verzeichnis (für die FAT32 Boot Partition des USB Sticks), wenn selbiges nicht vorhanden sein sollte; der Inhalt des „media“ Verzeichnisses wird (bis auf die WinPE Standard Boot.wim darin) auf die erste (FAT32) Boot-Partition des Sticks kopiert.

WICHTIG:

Man habe nur genau EIN USB Medium (Stick) an der Box angeschlossen, wo man (als ADMIN! ) das Tool started, von dem man sicher weiss, dass dasselbe vom Tool neu formatiert werden könnte !!

Man mache ein BACKUP von den Daten auf dem USB-Stick (falls darauf noch wichtige Daten sein sollten), dito sicherheitshalber ein BACKUP aller wichtigen Daten auf der Build-Maschine (auch wenn das Tool es nicht schafft, die gerade gebootete Partition / Platte zu löschen) 🙂

Das Blechschild habe ich an meiner Tür hängen 🙂

No Risk, No Fun 😊

Da aktuelle UEFI/GPT Maschinen nicht von NTFS USB Laufwerken booten können, wird – anderes als z.B. beim Rufus Tool – das USB Medium in zwei Partitionen aufgeteilt (eine kleine FAT32 für den Boot-Code und der Rest als grosse NTFS-Partition mit den Installationsquellen).

Das Tool checked auch die notwendigen Admin-Rechte & warnt entsprechend 😊

Auch der Formatier-Vorgang (des – wenn angeschlossen & gefundenen – USB Drives) wird – per Default – nur mit „Confirm“ Messages möglich, ausser man stellt das „Confirm“ in der zugehörigen USBCREATOR.xml um 😊

Um in der GUI Version des Tools eine Art Fortschrittsanzeige für die diversen Robocopy-Jobs innerhalb des Ablaufs zu haben, habe ich nach längerem Suchen die Funktion Copy-ItemWithProgress von Keith Garner gefunden und eingebaut:

Keith Function

Zugegebenermassen sieht das – zur Laufzeit – ein wenig „fancy“ aus (zig PopUps), aber besser man sieht eine Art Fortschritt als eine „not responsive“ App  😊

Die aktuelle Version kann auch das Boot.wim (auf der FAT32 Boot-Partition des Sticks) um ggf. notwendige Treiber (Netzwerk, Tastatur, Storage) ergänzen, was bei aktueller Hardware (USB 3, NVMe SSDs, aktuellen Surface Modellen usw.) oft notwendig ist, weil sonst ggf. weder Tastatur noch Netzwerk noch lokale Festplatten „gefunden“ werden 😊

Hierzu muss lediglich ein passendes Verzeichnis (mit den WinPE X64 Treibern für diese Geräte) bereitgestellt werden,  wozu sich z.B. ein entsprechendes MDT Out-of-Box Drivers Verzeichnis eignet, s.u.

Das Tool liest seine Konfiguration aus einer XML Datei aus (USBCreator.xml), die im gleichen Verzeichnis wie das Tool selbst liegen muss.

In der XML (USBCreator.xml) kann man auch die Minimalgrösse des USB-Mediums (in Byte!) festlegen (Default sind 28 GB = 30064771072 Bytes).

Schliesslich werden – bei Bedarf – diverse Dateien für das Customizing in den $OEM$-Ordner der NTFS Installationspartition des USB Sticks kopiert, des weiteren wird ein einfaches aber effektives Unattend Skript als AutoUnattend.xml aus dem AutoUnattend Root Verzeichnis in die Root der (FAT32) Boot-Partition kopiert, wo auch die setup.exe liegt, die selbiges anziehen sollte 😊

Letzteres macht eine „Zero Touch Installation“ eines Vanilla Images auf Basis des jeweiligen ISOs mit allen Sachen, die man dafür benötigt; also den fertig gebauten USB-Stick in eine frische neue Box stecken, davon booten (meist via F12 oder ENTER oder F1 clicken) und machen lassen 😊

Das ursprüngliche PowerShell Skript („nacktes“ prepare-usb-w10-install-1.ps1, hat keine GUI!) könnt Ihr natürlich alternativ zur GUI Version verwenden 😊

Selbiges benutzt die „gewöhnlichen“ Fortschrittsanzeigen von PowerShell.

BugFixes & Wünsche werden auch gerne genommen

Hier sind ALLE benötigten Dateien, also das Tool als GUI (USBCreator.exe) als auch PS1 native (prepare-usb-w10-install-1.ps1) und auch alle Samples für die Addons (Autounattend,xml, $OEM$ Files, Lenovo Driver Install Dir …)

Die Doku (PDF) von dem Teil findet Ihr hier

+1

1 Comment

  • Update:
    Version 1.6 nun auch mit Schalter bzw. XML Config Element für die Mindestgrösse des USB Mediums, waren bisher hardcoded 28 GB

    0
    0
    0

Schreibe einen Kommentar

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