Run-ShopfloorSetup: skip GE-Enforce + S: map on Display PCs
Display kiosk user cannot authenticate to the tsgwp00525 SFLD share, so any share-dependent enforcement task on Displays would fail every cycle. Display is now self-contained: kiosk EXE installs at imaging time via preinstall.json (Install-KioskApp.cmd) and Edge kiosk policies via 09-Setup-Display.ps1. No ongoing SFLD-share dependency. Gate both registrations behind a $noEnforceTypes alias group so either pcType form (Display, gea-shopfloor-display) hits the skip path. Other PC types still register both tasks unchanged. Verified on win11 VM: matrix test confirmed Display + gea-shopfloor- display SKIP both gates while Standard / CMM / gea-shopfloor- collections still REGISTER. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -345,8 +345,17 @@ $commonSetupDir = Join-Path $setupDir 'common'
|
|||||||
# Single dispatcher for all PC-type ongoing-update enforcement. Reads
|
# Single dispatcher for all PC-type ongoing-update enforcement. Reads
|
||||||
# per-pctype manifest.json from the tsgwp00525 share and processes
|
# per-pctype manifest.json from the tsgwp00525 share and processes
|
||||||
# common + per-type + per-type-subtype manifests in order.
|
# common + per-type + per-type-subtype manifests in order.
|
||||||
|
#
|
||||||
|
# Display PCs are excluded: their kiosk user cannot reach the SFLD
|
||||||
|
# share, and everything Display needs (kiosk EXE + Edge policies) is
|
||||||
|
# baked at imaging time (preinstall.json Install-KioskApp + 09-Setup-
|
||||||
|
# Display.ps1). No ongoing share-dependent enforcement on Displays.
|
||||||
|
$noEnforceTypes = @('Display', 'gea-shopfloor-display')
|
||||||
$registerGE = Join-Path $commonSetupDir 'Register-GEEnforce.ps1'
|
$registerGE = Join-Path $commonSetupDir 'Register-GEEnforce.ps1'
|
||||||
if (Test-Path -LiteralPath $registerGE) {
|
if ($noEnforceTypes -contains $pcType) {
|
||||||
|
Write-Host ""
|
||||||
|
Write-Host "=== Skipping GE-Enforce registration ($pcType is self-contained) ==="
|
||||||
|
} elseif (Test-Path -LiteralPath $registerGE) {
|
||||||
Write-Host ""
|
Write-Host ""
|
||||||
Write-Host "=== Registering unified GE Shopfloor enforcer ==="
|
Write-Host "=== Registering unified GE Shopfloor enforcer ==="
|
||||||
try {
|
try {
|
||||||
@@ -372,8 +381,13 @@ if (Test-Path -LiteralPath $registerGE) {
|
|||||||
# vendor 'SFLD - Consume Credentials' task is principal-restricted and
|
# vendor 'SFLD - Consume Credentials' task is principal-restricted and
|
||||||
# does not fire for the ShopFloor end-user, so this parallel task fills
|
# does not fire for the ShopFloor end-user, so this parallel task fills
|
||||||
# the gap. Cross-PC-type because every shopfloor account needs S:.
|
# the gap. Cross-PC-type because every shopfloor account needs S:.
|
||||||
|
# Display PCs skipped: kiosk user has no SFLD creds, S: map would fail
|
||||||
|
# every logon. Self-contained Display has no share dependency.
|
||||||
$registerMapShare = Join-Path $setupDir 'Shopfloor\Register-MapSfldShare.ps1'
|
$registerMapShare = Join-Path $setupDir 'Shopfloor\Register-MapSfldShare.ps1'
|
||||||
if (Test-Path -LiteralPath $registerMapShare) {
|
if ($noEnforceTypes -contains $pcType) {
|
||||||
|
Write-Host ""
|
||||||
|
Write-Host "=== Skipping S: drive logon mapper ($pcType is self-contained) ==="
|
||||||
|
} elseif (Test-Path -LiteralPath $registerMapShare) {
|
||||||
Write-Host ""
|
Write-Host ""
|
||||||
Write-Host "=== Registering S: drive logon mapper ==="
|
Write-Host "=== Registering S: drive logon mapper ==="
|
||||||
try { & $registerMapShare } catch { Write-Warning "Map-SfldShare registration failed: $_" }
|
try { & $registerMapShare } catch { Write-Warning "Map-SfldShare registration failed: $_" }
|
||||||
|
|||||||
Reference in New Issue
Block a user