使用 [intptr]::Size 检查 32 位与 64 位是否相关?

使用 [intptr]::Size 检查 32 位与 64 位是否相关?

在由编辑器制作的部署 Powershell 脚本中,它使用以下行来确定服务器是 32 位还是 64 位并下载适当的包。

if ( [intptr]::Size -eq 8 ) { 
   $sourceUrl=-join($baseurl, "software/agent/Windows/x86_64/") }
else {
   $sourceUrl=-join($baseurl, "software/agent/Windows/i386/") }

我在 Windows 2008 R2 服务器上发现了一个 [intptr]::Size 返回值 4 的示例,并且系统是 64 位。

那么我是否应该认为上述方法不正确?我可以使用哪种替代方案?

答案1

if ([Environment]::Is64BitOperatingSystem) { 
  $sourceUrl=-join($baseurl, "software/agent/Windows/x86_64/")  
}
else {
  $sourceUrl=-join($baseurl, "software/agent/Windows/i386/")  
}

来源:

https://stackoverflow.com/questions/61396435/how-do-i-check-the-os-architecture32-or-64-bit-using-powershell

相关内容