【发布时间】:2017-04-09 00:37:44
【问题描述】:
我需要能够启动 64 位版本的 PowerShell.exe 我通过检查 [system.intptr]::size 的值为 8 来验证我使用的是 64 位版本。
【问题讨论】:
标签: powershell
我需要能够启动 64 位版本的 PowerShell.exe 我通过检查 [system.intptr]::size 的值为 8 来验证我使用的是 64 位版本。
【问题讨论】:
标签: powershell
要启动 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\ 路径是错误的。
【讨论】:
另一种快速启动与操作系统架构对应的可执行文件的方法:
# 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'
【讨论】:
-replace 'SysWOW64', 'sysnative'而不是-replace 'system32','sysnative'吗?