fix(collector): launch via Setup\CmdLine (was bypassed) + WinPE diagnostics
Some checks failed
Build SilverMetal Enhanced - Windows ISO / build (pull_request) Failing after 4m8s
Some checks failed
Build SilverMetal Enhanced - Windows ISO / build (pull_request) Failing after 4m8s
The boot.wim Setup\CmdLine override (legacy-Setup forcing) is authoritative over winpeshl.ini, so it launched setup.exe directly and the collector never ran -- the VM went straight to the old sm-bootstrap unattended install. Repoint Setup\CmdLine at the collector (cmd /c X:\sm\Start-Collector.cmd); the collector still launches the legacy X:\sources\setup.exe itself. Add wpeinit + an on-screen banner, and write any collector/WinForms-load failure to X:\sm\collector-error.txt shown on the console before falling back, so we can diagnose WinForms-in-WinPE. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -130,8 +130,13 @@ function Invoke-ForceLegacySetup {
|
||||
Copy-Item (Join-Path $PSScriptRoot '..\collector\*') $smDir -Recurse -Force
|
||||
Copy-Item (Join-Path $smDir 'winpeshl.ini') (Join-Path $bootmnt 'Windows\System32\winpeshl.ini') -Force
|
||||
Write-Host " staged collector to boot.wim \sm\ + winpeshl.ini"
|
||||
$setup = if (Test-Path (Join-Path $bootmnt 'sources\setup.exe')) { 'X:\sources\setup.exe' } else { 'X:\setup.exe' }
|
||||
$cmdline = "$setup /unattend:X:\autounattend.xml"
|
||||
# Setup\CmdLine is the WinPE setup-image shell launch and is AUTHORITATIVE over
|
||||
# winpeshl.ini -- point it at the SilverMetal collector so the pre-config UI runs
|
||||
# FIRST. The collector then launches the LEGACY setup.exe itself (X:\sources\setup.exe,
|
||||
# preserving the legacy-Setup bypass) with its generated answer file, or falls back to
|
||||
# the default autounattend.xml on cancel/error. (Pointing Setup\CmdLine straight at
|
||||
# setup.exe bypassed the collector entirely -- it won over winpeshl.ini.)
|
||||
$cmdline = "cmd /c X:\sm\Start-Collector.cmd"
|
||||
$hive = Join-Path $bootmnt 'Windows\System32\config\SYSTEM'
|
||||
& reg load 'HKLM\SM_BOOT' $hive | Out-Null
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user