fix(first-boot): re-apply personalization branding online + defer sm-bootstrap cleanup
All checks were successful
Build SilverMetal Enhanced - Windows ISO / build (pull_request) Successful in 5m37s
All checks were successful
Build SilverMetal Enhanced - Windows ISO / build (pull_request) Successful in 5m37s
VM e2e findings on the real-user desktop: 1. Lock/login screen + wallpaper NOT branded (OEM About WAS) — Windows resets the offline-baked personalization (PersonalizationCSP / default-user wallpaper / FVE) during OOBE, same class as the UAC reset. Fix: stage windows/branding/ into the image and re-run Apply-Branding -Mode Online from SetupComplete (post-OOBE, as SYSTEM) where it sticks. OEM About re-asserted harmlessly. 2. sm-bootstrap account still present after onboarding — TearDownAsync's in-session Remove-LocalUser no-ops (can't delete the account you're logged in as). Fix: keep the best-effort in-session attempt, but DEFER the real removal to a SYSTEM AtStartup scheduled task that runs on next boot (sm-bootstrap not logged on), removes the account + Win32_UserProfile, then deletes itself. (Network 'no adapter' in the VM was a Proxmox NIC-model regression to virtio — fixed by switching the VM to Intel e1000; not a SilverMetal change.) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -234,6 +234,11 @@ function Invoke-ServiceWim {
|
||||
Copy-Item (Join-Path $PSScriptRoot 'oem\SetupComplete.cmd') $scripts -Force
|
||||
Copy-Item (Join-Path $PSScriptRoot 'oem\Configure-Kiosk.ps1') $scripts -Force
|
||||
Copy-Item (Join-Path $WindowsDir 'hardening\*') (Join-Path $scripts 'hardening') -Recurse -Force
|
||||
# Stage the branding module so SetupComplete.cmd can re-apply branding ONLINE
|
||||
# (Windows resets the offline personalization bake during OOBE).
|
||||
$brandDest = Join-Path $scripts 'branding'
|
||||
$null = New-Item -ItemType Directory -Force $brandDest
|
||||
Copy-Item (Join-Path $WindowsDir 'branding\*') $brandDest -Recurse -Force
|
||||
|
||||
# Stage Welcome app + flavours while the WIM is still mounted.
|
||||
Copy-WelcomePayload
|
||||
|
||||
Reference in New Issue
Block a user