无论是从32位还是64位进程执行此操作,如何启动64位PowerShell进程?

时间:2017-04-08 02:13:28

标签: powershell

我需要能够启动64位版本的PowerShell.exe 我通过检查[system.intptr] :: size的值来验证我是否在64位版本中。

2 个答案:

答案 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'