|
|
会搭讪的石榴 · mysql存储过程查询结果,再循环_mob6 ...· 1 年前 · |
|
|
打酱油的荒野 · Vue.js从零开始——过渡 / ...· 2 年前 · |
|
|
聪明伶俐的红薯 · DB2,原因:密码已到期。 ...· 2 年前 · |
|
|
闯红灯的雪糕 · Web Components简述 - 知乎· 2 年前 · |
在x64位操作系统平台上运行PowerShell脚本时,如何在脚本中确定脚本运行在哪个版本的PowerShell (32位或64位)上?
背景
默认情况下,32位和64位版本的PowerShell都安装在64位平台上。当运行必须以特定体系结构为目标的PowerShell脚本时(例如,为了使用64位库,对SharePoint 2010使用64位的脚本),这可能会导致困难。
相关问题:
发布于 2011-12-21 20:13:10
如果您的shell运行在.NET 4.0 (PowerShell 3.0)上:
PS> [Environment]::Is64BitProcess
True
发布于 2011-12-21 19:19:57
要在脚本中确定正在使用的PowerShell版本,可以使用以下助手函数( JaredPar's answer 提供的相关问题):
# Is this a Wow64 powershell host
function Test-Wow64() {
return (Test-Win32) -and (test-path env:\PROCESSOR_ARCHITEW6432)
# Is this a 64 bit process
function Test-Win64() {
return [IntPtr]::size -eq 8
# Is this a 32 bit process
function Test-Win32() {
return [IntPtr]::size -eq 4
}
上述函数利用了 size of System.IntPtr 是特定于平台的这一事实。它在32位机器上是4字节,在64位机器上是8字节。
请注意,值得注意的是,Powershell的32位和64位版本的位置有些误导。32位PowerShell在
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe
上,64位PowerShell在
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
上,感谢这个
article
。
发布于 2013-11-06 02:48:19
你也可以使用这个。我在PowerShell 2.0和4.0版本上对其进行了测试。
$Arch = (Get-Process -Id $PID).StartInfo.EnvironmentVariables["PROCESSOR_ARCHITECTURE"];
|
|
闯红灯的雪糕 · Web Components简述 - 知乎 2 年前 |