The driver check - the most valuable check in this script - has never actually run. It died on: Driver check failed: Cannot convert the JSON string because a dictionary that was converted from the string contains the duplicated keys 'FileName' and 'FileName' HardwareDriver.json carries both casings of the same fields - fileName and FileName, destinationDir and DestinationDir. ConvertFrom-Json treats object keys case-insensitively and refuses the document. -AsHashtable would handle it but that is PowerShell 6+, and WinPE runs 5.1. Confirmed it throws on PowerShell 7 too, so no version of ConvertFrom-Json can read this file as-is. Pulls the four needed fields out of each entry by regex instead, preferring the lowercase key and falling back to the capitalised one, and unescaping the backslashes in destinationDir. Tested against the real 44-entry catalogue, all three outcomes: OptiPlex Micro 7020, pack present -> OK, win11_optiplexd13mlk7020_a09.zip same model, pack removed -> FAIL, names the missing path Surface Laptop 7 -> FAIL, no pack matches Worth noting the check was failing SAFE - a WARN that reads like a tooling glitch rather than a missing driver pack. It would have stayed invisible until a bay imaged with no NIC.
7.3 KiB
Executable File
7.3 KiB
Executable File