Я пишу скрипт Powershell, который будет интегрирован в продукт, предназначенный для 32-битных Windows машин. Таким образом, при вызове он будет по умолчанию работать на x86 Powershell даже на 64-битных машинах. Одна из строк должна быть запущена на 64-битной оболочке для получения точных результатов. Попытка сделать это:
#Above this is the ongoing script in 32bit session
if ($env:PROCESSOR_ARCHITEW6432 -eq "AMD64") {
#write-warning "Excecuting the script under 64 bit powershell"
if ($myInvocation.Line) {
[System.IntPtr]::Size
&"$env:systemroot\sysnative\windowspowershell\v1.0\powershell.exe" -NonInteractive -NoProfile
#Statement block
}else{
&"$env:systemroot\sysnative\windowspowershell\v1.0\powershell.exe" -NonInteractive -NoProfile $args
#Statement block
}
}
#Below this is the remaining Script in 32 bit session
Я не могу передать поток управления в новый сеанс и забрать его обратно. Все, что он делает, это запускает 64-битную оболочку внутри уже запущенной 32-битной оболочки. Любой возможный способ сделать это, а также вернуть значения, напечатанные новой оболочкой?