windows - 在 PowerShell 中查找独立于操作系统的处理器架构

标签 windows powershell architecture processor

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

以下方法在我的测试设备上不起作用,这是一个 32 位 Windows 10 虚拟机,设置 应用将其识别为包含基于 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 位指令能力的内容

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

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

最佳答案

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

  • x86 为 0
  • 1 个用于 MIPS
  • 阿尔法 2
  • 3 用于 PowerPC
  • 6 用于 ia64
  • x64 为 9

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

关于windows - 在 PowerShell 中查找独立于操作系统的处理器架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48587216/

相关文章:

c++ - 如何在没有现有引擎的情况下在游戏中设计我的 EventTrigger 框架?

database - 对分布式事务使用事件溯源是个好主意吗?

node.js - GRPC微服务架构实现

windows - Bash 编程 (Cygwin) : Illegal Character ^M

windows - 适用于 Windows 的 CouchDB - SSL 证书 - 连接错误

windows - 无法从批处理文件打开 .chm 文件

windows - cmd 窗口上的 Git

powershell - ConvertTo-Xml Powershell 未按预期工作

powershell - 如何将标题添加到没有标题的 CSV 中?

powershell - powershell 5.0 和 5.1 中的 Get-ChildItem