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",MicrosoftMSDN页面告诉我"WindowsServer2003、WindowsXP和Windows2000:此属性不可用"。在我读到的某个地方,安装SP3是可能的。我想这是真的,因为它在XP 32位系统上是这样工作的。但是XP 64没有SP3…
有其他方法可以获得信息吗?
感谢
我认为读取NUMBER_OF_PROCESSORS环境变量最简单。
您想要"核心"还是"包括超线程的逻辑处理器数量"?(换句话说,你想把超线程作为一个"核心"吗?(?
无论如何,复制我不久前的一个类似问题的答案:
如果您确实需要区分实际的核心、芯片和逻辑处理器,要调用的API是获取逻辑处理信息
GetSystemInfo如果只是想知道上有多少逻辑处理器一台机器(对超线程没有区别(。