我正在尝试检测设备的处理器是否支持 64 位 Windows 操作系统安装,而没有在检查时关注设备上安装的 Windows 操作系统的位数.我希望通过 PowerShell(最低 3.0)执行此操作,但我也可以通过分别调用 cmd
和 cscript
来使用 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/