We were troubleshooting a recurring PSD Wizard startup failure when using:
- SkipTaskSequence=YES
- TaskSequenceID=
Behavior observed:
- Wizard failed to load or restarted unexpectedly.
- Generic log message:
Error loading PSDWizard: The property 'Text' cannot be found on this object.
Root Cause Summary
The issue was not only rules configuration. The primary blocker was a code path in PSDWizardNew.psm1 where custom pane detection could produce boolean values instead of pane name strings.
That led to this runtime error:
- Method invocation failed because [System.Boolean] does not contain a method named 'Replace'.`
This occurred in the custom pane preloader path when executing:
- $CustomPaneScript = $CustomPane.replace(...)`
Functional Fix Applied
File
Tools\Modules\PSDWizardNew\PSDWizardNew.psm1 (runtime module used in WinPE)
Exact logic change
Replaced:
$CustomPanes = $_wizTabControl.items.Name -match '_wizCustomPane'
With:
$CustomPanes = @(
$wizTabControl.items |
Where-Object { $.Name -is [string] -and $_.Name -match '^wizCustomPane' } |
ForEach-Object { $.Name }
)
We were troubleshooting a recurring PSD Wizard startup failure when using:
Behavior observed:
Error loading PSDWizard: The property 'Text' cannot be found on this object.Root Cause Summary
The issue was not only rules configuration. The primary blocker was a code path in
PSDWizardNew.psm1where custom pane detection could produce boolean values instead of pane name strings.That led to this runtime error:
This occurred in the custom pane preloader path when executing:
Functional Fix Applied
File
Tools\Modules\PSDWizardNew\PSDWizardNew.psm1(runtime module used in WinPE)Exact logic change
Replaced:
$CustomPanes = $_wizTabControl.items.Name -match '_wizCustomPane'
With:
$CustomPanes = @(
$wizTabControl.items |
Where-Object { $.Name -is [string] -and $_.Name -match '^wizCustomPane' } |
ForEach-Object { $.Name }
)