我需要能够启动64位版本的PowerShell.exe 我通过检查[system.intptr] :: size的值来验证我是否在64位版本中。
答案 0 :(得分:2)
启动64位版本的PowerShell:
从32位进程,使用路径:
c:\windows\sysnative\WindowsPowerShell\v1.0\powershell.exe
从64位进程,使用路径:
c:\windows\System32\WindowsPowerShell\v1.0\powershell.exe
如果您犯了错误,请启动:
c:\windows\System32\WindowsPowerShell\v1.0\powershell.exe
从32位进程中,您将获得32位版本的PowerShell。如果你错误地启动:
c:\windows\sysnative\WindowsPowerShell\v1.0\powershell.exe
从64位进程,您将收到错误,因为从64位进程c:\windows\sysnative\
路径是错误。
答案 1 :(得分:0)
启动与OS体系结构相对应的可执行文件的另一种快速方法:
# Get default executable path
$exePath = Join-Path $PSHome powershell.exe
# Test bitness
if([System.Environment]::Is64BitOperatingSystem -xor [System.Environment]::Is64BitProcess){
# 32-bit process on 64-bit OS
$exePath = $exePath -replace 'syswow64','sysnative'
}
# Launch new shell
& $exePath 'arguments go here'