sweep: pre-existing drift + matrix UDC entry + ignore 142MB EXE
Bundles drift left uncommitted from prior sessions and the UDC matrix
verify entry added today.
Drift items (all per session-progress.md, completed in earlier sessions
but never staged):
- playbook/check-bios.cmd (deleted, moved to BIOS/check-bios.cmd)
- playbook/migrate-to-wifi.ps1 (made no-op 2026-04-24 after the dnsmasq
no-gateway fix removed the wired-NIC race that motivated it)
- playbook/preinstall/oracle/Install-Oracle11r2.cmd (post-OUI .ora copy
added 2026-04-24)
- playbook/preinstall/oracle/tnsnames.ora (live tnsnames, 469 KB,
deployed alongside the wrapper 2026-04-24)
- playbook/pxe_server_setup.yml (dnsmasq dhcp-option=3,6 commented,
Oracle .ora deploy task added 2026-04-24)
- playbook/shopfloor-setup/BIOS/{check-bios.cmd, models.txt} (BIOS
detection refinements)
- playbook/shopfloor-setup/Shopfloor/Force-Lockdown.bat
- playbook/shopfloor-setup/Shopfloor/Monitor-IntuneProgress.ps1
- playbook/shopfloor-setup/Shopfloor/SetShopfloorAutoLogon.bat (new)
- playbook/shopfloor-setup/Shopfloor/09-Install-PrinterInstallerMap.ps1
(new, places PrinterInstallerMap.exe + Public Desktop shortcut at
imaging time; manifest entry self-heals on tamper)
- playbook/shopfloor-setup/Shopfloor/lib/Show-IntuneDeviceQR.ps1 (new,
standalone QR rendering for site that wanted just that piece)
- playbook/shopfloor-setup/gea-shopfloor-collections/{Install-eMxInfo.cmd.template,
Restore-UDCData.ps1} (these were uncommitted in pre-rename Standard/;
git mv didn't catch them because they were untracked at the time)
- docs/shopfloor-machine-imaging-guide.md (operator-facing how-to)
Matrix:
- common.test/matrix.json: add UDC verify entry to gea-shopfloor-collections
row. Surfaces UDC silent-install issue (item H pending) instead of
letting it pass silently.
.gitignore:
- PrinterInstallerMap.exe (142 MB) excluded. Track via LFS or stage on
PXE server only - too big for regular git history. Untouched on disk
so existing local copy still works.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,43 +1,30 @@
|
||||
# migrate-to-wifi.ps1 - Invoked by FlatUnattendW10-shopfloor.xml as Order 5
|
||||
# during first logon, right after wait-for-internet.ps1 and right before
|
||||
# GCCH enrollment. Moves the machine off wired onto WiFi for the rest of
|
||||
# the imaging chain so the PXE ethernet cable can be safely disconnected.
|
||||
# migrate-to-wifi.ps1 - No-op as of 2026-04-24.
|
||||
#
|
||||
# Gated: if there is no physical Wi-Fi adapter on the machine (tower /
|
||||
# desktop case), the whole migration is a no-op. Previously this step
|
||||
# disabled all wired adapters unconditionally and then waited for WiFi
|
||||
# internet that could never arrive on towers, hanging first logon forever.
|
||||
# Previously this disabled all wired NICs at first logon to keep PPKG /
|
||||
# Intune enrollment routing internet traffic via WiFi. The wired NIC was
|
||||
# preferred by Windows because the PXE dnsmasq was handing out a default
|
||||
# gateway (dhcp-option=3,10.9.100.1) which Windows installed as a default
|
||||
# route, and the lower interface metric of wired beat WiFi. Internet-bound
|
||||
# traffic then black-holed at 10.9.100.1 (the PXE server, which doesn't
|
||||
# forward).
|
||||
#
|
||||
# That root cause was fixed by removing the dhcp-option=3 and =6 lines
|
||||
# from /etc/dnsmasq.conf on the PXE server. Without an advertised gateway
|
||||
# on the PXE side, Windows can't add a default route via wired, so all
|
||||
# internet traffic uses WiFi by default and the wired NIC stays harmless
|
||||
# for same-subnet PXE/SMB traffic to 10.9.100.1.
|
||||
#
|
||||
# Side effect of the original behavior was an eDNC race: eDNC autostart
|
||||
# would fire while the wired NIC was still disabled and hit WSAEINVAL
|
||||
# (Winsock 10022) trying to bind to a non-existent local IP, looping its
|
||||
# retry timer until a SYSTEM task re-enabled the NIC after SFLD creds
|
||||
# landed (often ~30+ min later). Keeping the NIC up the whole time
|
||||
# eliminates that race.
|
||||
#
|
||||
# Kept as a no-op file (instead of removed) so the unattend XML's Order 5
|
||||
# RunSynchronousCommand entry does not need to be re-numbered. If the
|
||||
# dhcp-option lines ever come back, this can be reverted to the disable
|
||||
# logic by restoring from git.
|
||||
|
||||
$wifi = Get-NetAdapter -Physical -ErrorAction SilentlyContinue |
|
||||
Where-Object { $_.InterfaceDescription -match 'Wi-?Fi|Wireless|WLAN|802\.11' }
|
||||
|
||||
if (-not $wifi) {
|
||||
Write-Host 'No WiFi adapter - staying on ethernet.' -ForegroundColor Cyan
|
||||
exit 0
|
||||
}
|
||||
|
||||
Get-NetAdapter -Physical |
|
||||
Where-Object { $_.InterfaceDescription -notmatch 'Wi-?Fi|Wireless|WLAN|802\.11' } |
|
||||
Disable-NetAdapter -Confirm:$false
|
||||
|
||||
$deadline = (Get-Date).AddMinutes(5)
|
||||
$ok = $false
|
||||
while ((Get-Date) -lt $deadline) {
|
||||
try {
|
||||
if (Test-NetConnection -ComputerName login.microsoftonline.us -Port 443 -InformationLevel Quiet -WarningAction SilentlyContinue) {
|
||||
$ok = $true
|
||||
break
|
||||
}
|
||||
} catch {}
|
||||
Start-Sleep -Seconds 5
|
||||
}
|
||||
|
||||
if ($ok) {
|
||||
Write-Host 'Internet confirmed over WiFi.' -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host 'WiFi internet timeout - re-enabling ethernet.' -ForegroundColor Yellow
|
||||
Get-NetAdapter -Physical |
|
||||
Where-Object { $_.InterfaceDescription -notmatch 'Wi-?Fi|Wireless|WLAN|802\.11' } |
|
||||
Enable-NetAdapter -Confirm:$false
|
||||
}
|
||||
Write-Host 'migrate-to-wifi.ps1: no-op (wired NIC kept enabled).'
|
||||
exit 0
|
||||
|
||||
Reference in New Issue
Block a user