diff --git a/playbook/shopfloor-setup/Run-ShopfloorSetup.ps1 b/playbook/shopfloor-setup/Run-ShopfloorSetup.ps1 index 58a5c0a..6cd59a7 100644 --- a/playbook/shopfloor-setup/Run-ShopfloorSetup.ps1 +++ b/playbook/shopfloor-setup/Run-ShopfloorSetup.ps1 @@ -1,6 +1,20 @@ # Run-ShopfloorSetup.ps1 - Dispatcher for shopfloor PC type setup # Runs Shopfloor baseline scripts first, then type-specific scripts on top. +# --- Stage-file gate --- +# If run-enrollment.ps1 wrote a stage file, the imaging chain is managed by +# Stage-Dispatcher.ps1 via RunOnce. Exit immediately so the FirstLogonCommands +# chain finishes, the PPKG reboot fires, and the dispatcher takes over on +# the next boot. Without this gate, the unattend's FirstLogonCommands runs +# this script right after run-enrollment in the same session (before the +# PPKG reboot), bypassing the entire staged chain. +$stageFile = 'C:\Enrollment\setup-stage.txt' +if (Test-Path -LiteralPath $stageFile) { + $stage = (Get-Content -LiteralPath $stageFile -First 1 -ErrorAction SilentlyContinue) + Write-Host "Stage file found ($stage) - deferring to Stage-Dispatcher.ps1 on next logon." + exit 0 +} + # --- Transcript logging --- # Captures everything the dispatcher and all child scripts write to host so # we can diagnose setup failures after the fact. -Append + -Force so repeat