FlatUnattendW10-shopfloor.xml Orders 4 and 5 hung forever on
desktops/towers with no WiFi NIC. Two underlying bugs:
1. Order 4 used Test-Connection (ICMP) against login.microsoftonline.us.
Microsoft 365 endpoints do not reliably respond to ICMP, so even
with working TCP 443 internet the ping loop ran forever. Symptom
on a user-facing machine was the PowerShell window permanently
stuck on "Waiting for internet connectivity...".
2. Order 5 unconditionally disabled all wired adapters and waited for
WiFi internet. On a tower with no WiFi NIC this left the machine
completely offline, and the following while loop waited for a WiFi
connection that could never happen.
Fixes:
- Order 4 now emits a 60s interactive prompt asking the user to
connect to the production network (so towers have a window to
unplug PXE and plug into a production port), then uses
Test-NetConnection -Port 443 with a 10 min hard timeout so the
loop always exits.
- Order 5 checks for a physical WiFi adapter first; if none exists
(tower case), it logs "No WiFi adapter - staying on ethernet" and
returns immediately instead of disabling wired. If WiFi is present
and migration times out, wired adapters are re-enabled as a
fallback so the machine is never left offline.
Both orders now use Test-NetConnection -Port 443 instead of
Test-Connection (ICMP) so ICMP-blocking firewalls and non-responsive
cloud endpoints no longer produce infinite waits.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Fix check-bios.cmd: replace parenthesized if blocks with goto labels
(cmd.exe fails silently with if/else on network-mapped drives)
- Move BIOS check files to winpeapps/_shared/BIOS for reliable SMB access
- Add network wait loop before BIOS check in startnet.cmd
- Show firmware status in WinPE menu header (BIOS_STATUS variable)
- Add BypassNRO registry key to skip OOBE network requirement
- Refactor download-drivers.py with --parallel N flag (ThreadPoolExecutor)
- Set SupportUser AutoLogonCount to 3 in shopfloor unattend
- Add shutdown -a at start + shutdown /r /t 10 at end of Run-ShopfloorSetup.ps1
- Switch download-drivers.py from wget to curl for reliable stall detection
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>