【问题标题】:Find architecture of processor independent of OS in PowerShell在 PowerShell 中查找独立于操作系统的处理器架构
【发布时间】:2018-07-13 05:20:09
【问题描述】:

我正在尝试检测设备的处理器是否支持 64 位 Windows 操作系统安装,而没有注意检查时安装在其上的 Windows 操作系统的位数.我希望通过 PowerShell(最低 3.0)来执行此操作,但我也可以通过分别调用 cmdcscript 来使用 Batch 或 VBScript。代码必须可以通过非交互式脚本执行,并且无需用户交互即可返回值。

以下方法不适用于我的测试设备,即 32 位 Windows 10 虚拟机,Settings 应用将其识别为包含基于 x64 的处理器:

  • WMI:Win32_ComputerSystem/SystemType - 返回“基于 X86 的 PC”
  • WMI:Win32_Processor/CPU0/AddressWidth - 返回 32
  • PowerShell:[intPtr]::size – 返回 4(64 位设备返回 8)
  • PowerShell:$env:PROCESSOR_ARCHITECTURE & IDENTIFIER – 返回 x86
  • 注册表:HKLM\Hardware\Description\System\CentralProcessor\0 - 不返回任何可以运行搜索以确定 64 位指令能力的内容

我在上面提到,Settings 应用程序可以收集这些信息来告诉用户他们的设备理论上支持安装 64 位 Windows 操作系统。知道这一点让我不愿意使用第三方命令行工具(尽管它仍然是可行的最后手段)。

用例将执行此检查,然后使用该信息衍生一个 if 子句。

【问题讨论】:

  • Win32_Processor 属性架构怎么样 - 在 PowerShell 中,(Get-WMIObject -Class Win32_Processor).Architecture?它应该采用的值是以下之一:0 - x86; 1 - MIPS; 2 - 阿尔法; 3 - 电源电脑; 6 - ia64; 9 - x64。
  • 行得通,杰夫!谢谢你。请随时将其发布为答案,我会这样标记。
  • 完成!谢谢!
  • $Env:PROCESSOR_ARCHITECTURE 还有$Env:PROCESSOR_IDENTIFIER
  • @TheIncorrigible1 我已经说过 PROCESSOR_ARCHITECTURE 不起作用。作为记录,PROCESSOR_IDENTIFIER 声明该设备是基于 x86 的。 Jeff 的答案是迄今为止唯一被确认有效的答案。

标签: windows powershell architecture processor


【解决方案1】:

Win32_Processor WMI 类有一个属性Architecture。根据处理器类型,这采用以下值:

  • x86 为 0
  • 1 用于 MIPS
  • 2 用于 Alpha
  • 3 用于 PowerPC
  • 6 用于 ia64
  • 9 用于 x64

因此,在配备 Core i7 处理器的计算机上,(Get-WMIObject -Class Win32_Processor).Architecture 将返回 9,告诉您它是 x64 处理器 - 即使您在其上安装了 32 位 Windows。

【讨论】:

    【解决方案2】:

    使用 VB 脚本,您可以检查 OS 类型的 AddressWidth 和 CPU 类型的 DataWidth。将以下内容放入 .vbs 文件中:

    address_width=  GetObject("winmgmts:root\cimv2:Win32_Processor='cpu0'").AddressWidth
    data_width= GetObject("winmgmts:root\cimv2:Win32_Processor='cpu0'").DataWidth
    
    WScript.Echo "Running " & address_width _
        & " Bit Windows on " & data_width & " Bit processor."
    

    有很多方法可以确定 Windows 是 32 位还是 64 位 - 但这是我找到的检查处理器类型的最佳方法。我花了一些时间才找到它,所以我想我会分享以防其他人在寻找:-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-12
      • 2013-06-14
      • 1970-01-01
      • 1970-01-01
      • 2010-12-22
      • 1970-01-01
      相关资源
      最近更新 更多