diff --git a/scripts/Test-CapacityBurnIn.ps1 b/scripts/Test-CapacityBurnIn.ps1 index 1113ec3..a364870 100644 --- a/scripts/Test-CapacityBurnIn.ps1 +++ b/scripts/Test-CapacityBurnIn.ps1 @@ -216,18 +216,19 @@ for ($r = 1; $r -le $Rounds; $r++) { # Start-Job runs a new PS session; call the platform PS executable as child # process so exit $exitCode from Invoke-CIJob.ps1 is captured in $LASTEXITCODE. + # $IsWindows is evaluated inside the job worker (correct OS context). # NOTE: do NOT name the parameter $Args — @Args is a PS reserved splatting # alias for the automatic $Args variable (unbound arguments), which would # be empty here since the parameter binding consumed all positional args. - $psExe = if ($IsWindows) { 'powershell.exe' } else { 'pwsh' } $psJob = Start-Job -ScriptBlock { - param([string[]]$ChildArgs, [string]$PsExe) - $out = & $PsExe @ChildArgs 2>&1 + param([string[]]$ChildArgs) + $psExe = if ($IsWindows) { 'powershell.exe' } else { 'pwsh' } + $out = & $psExe @ChildArgs 2>&1 [PSCustomObject]@{ ExitCode = $LASTEXITCODE Output = ($out -join "`n") } - } -ArgumentList (, $argArray), $psExe + } -ArgumentList (, $argArray) $jobEntries.Add(@{ PSJob = $psJob