2017-04-08 190 views

回答

1

要啓動的PowerShell的64位版本:

  • 從一個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位的過程中,你會得到的PowerShell的32位版本。如果你誤啓動:

c:\windows\sysnative\WindowsPowerShell\v1.0\powershell.exe 

從64位過程中,你會因爲一個64位的過程中,c:\windows\sysnative\路徑是錯誤得到一個錯誤。

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' 
+0

難道不應該是'-replace 'SysWOW64中', 'sysnative'',而不是'-replace 'SYSTEM32',' sysnative」 '? – PetSerAl

+0

@PetSerAl是的,它應該,感謝您發現它 –

+0

這是很好知道,但問題是沒有關係到操作系統架構。該問題僅適用於64位操作系統。在64位操作系統中,您可以運行64位進程或32位進程。這樣的過程如何確保他們啓動64位版本的PowerShell。這就是問題所在。 – zumalifeguard

相關問題