BPRT was stopping after the first RestartRequired=true command (DotNet35). Test image captured 2026-04-15 showed 3 of 21 PPKG commands ran (PPKG Version Check, Lock Screen, DotNet35) before provtool exited 0 leaving Office / Chrome / Tanium / Activate-Windows / Enable-DeviceLockdown / Hide-SupportUser / 12 more scripts unexecuted. Symptom: criticalChecks said EntraID NOT joined (wrong -- it was), sessions.json showed a 'LogonIdleTask' session perpetually 'Not started', and the resulting PC was missing most of its fleet software. BPRT is the OOBE runtime source -- it expects the OOBE engine to own the post-DotNet35 reboot + resume. In our post-autounattend context there is no OOBE engine, so restart-required commands stall the pipeline. PSCmdlet is the source Install-ProvisioningPackage uses internally and has the correct resume semantics for post-OOBE application. The original motivation for BPRT (avoiding the 180s PowerShell timeout) does not apply because we invoke provtool.exe directly, not via the Install-ProvisioningPackage cmdlet. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
7.4 KiB
Executable File
7.4 KiB
Executable File