# Run-ShopfloorSetup.ps1 — Dispatcher for shopfloor PC type setup # Runs Shopfloor baseline scripts first, then type-specific scripts on top. # Cancel any pending reboot so it doesn't interrupt setup shutdown -a 2>$null $enrollDir = "C:\Enrollment" $typeFile = Join-Path $enrollDir "pc-type.txt" $setupDir = Join-Path $enrollDir "shopfloor-setup" if (-not (Test-Path $typeFile)) { Write-Host "No pc-type.txt found - skipping shopfloor setup." exit 0 } $pcType = (Get-Content $typeFile -First 1).Trim() if (-not $pcType) { Write-Host "pc-type.txt is empty - skipping shopfloor setup." exit 0 } Write-Host "Shopfloor PC Type: $pcType" # --- Run Shopfloor baseline scripts first --- $baselineDir = Join-Path $setupDir "Shopfloor" if (Test-Path $baselineDir) { $scripts = Get-ChildItem -Path $baselineDir -Filter "*.ps1" -File | Sort-Object Name foreach ($script in $scripts) { shutdown /a 2>$null Write-Host "Running baseline: $($script.Name)" try { & $script.FullName } catch { Write-Warning "Baseline script $($script.Name) failed: $_" } } } # --- Run type-specific scripts (if not just baseline Shopfloor) --- if ($pcType -ne "Shopfloor") { $typeDir = Join-Path $setupDir $pcType if (Test-Path $typeDir) { $scripts = Get-ChildItem -Path $typeDir -Filter "*.ps1" -File | Sort-Object Name foreach ($script in $scripts) { shutdown /a 2>$null Write-Host "Running $pcType setup: $($script.Name)" try { & $script.FullName } catch { Write-Warning "Script $($script.Name) failed: $_" } } } else { Write-Host "No type-specific scripts found for $pcType." } } Write-Host "Shopfloor setup complete for $pcType." Write-Host "Rebooting in 10 seconds..." shutdown /r /t 10