获取XP 64位系统上的核心数

时间:2011-07-29 11:07:28

标签: windows autoit system-information

HeJ小鼠,

我写了一个函数,它应该给我一个windows系统的核心数。它适用于除XP 64位以外的所有系统。这是我获取信息的方式:

$objWMIItems = $objWMIService.ExecQuery ("SELECT * FROM Win32_Processor")
If (0 == IsObj($objWMIItems)) Then
       ;~ errorhandling
Else
For $objElement In $objWMIItems
    $nCoreNumber = $objElement.NumberOfCores
Next

关于“NumberOfCores”,微软MSDN页面告诉我“Windows Server 2003,Windows XP和Windows 2000:此属性不可用”。在我读到的某个地方,可以安装SP3。我想这是真的,因为它在XP 32位系统上的工作方式。但是XP 64没有SP3 ......

还有另一种获取信息的方法吗?

由于

2 个答案:

答案 0 :(得分:3)

我认为最简单的方法是阅读NUMBER_OF_PROCESSORS个环境变量。

答案 1 :(得分:0)

您想要“核心”还是“包括超线程在内的逻辑处理器数量”? (换句话说,你想把超线程算作“核心”)吗?

无论如何,不​​久前从类似的问题中复制my answer

  

如果你真的需要区分实际核心,芯片和   逻辑处理器,要调用的API   GetLogicalProcessInformation

     

GetSystemInfo如果只想知道有多少个逻辑处理器   一台机器(对于超线程没有区别。)。