У меня была точно такая же проблема, потому что я вызывал неправильную версию PowerShell из моей программы. Я не уверен в этом, но я думаю, что когда у вас есть программа для x86, она вызывает версию PowerShell для x86, которая не работает.
Чтобы конкретно использовать 32-битную версию , вызовите эту из своей программы:
C:\Windows\SysWoW64\WindowsPowerShell\v1.0\powershell.exe
Чтобы использовать 64-битную версию (в 64-битной ОС) , вызовите ее из вашей программы:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Использование C:\Windows\SysNative\WindowsPowerShell\v1.0\powershell.exe
из 32-битного процесса даст вам 64-битную PowerShell. Использование его из 64-битного процесса приведет к ошибке «файл не найден».