这是一次艰难的考验。
我需要使用一个命令从我的服务器输出核心的确切数量。
我的测试:
X**:**,有4个处理器(套接字)和2个核心,每个核都没有HT。Y**:**有2个处理器(套接字)和6个核心,每个内核都有HT。GetSystemInfo只给我安装了多少处理器:4个用于X,2个用于Y。
| | X: 8 cores | Y: 12 cores |
| | 4x2 (no HT) | 2x6 (HT) |
|----------------|-------------|-------------|
| Desired output | 8 | 12 |
| GetSystemInfo | 4 | 2 | %NUMBER_OF_PROCESSORS%是一个很好的方法,但是它考虑到了HT。它告诉我X是8,Y是24 (因为它有HT,所以我需要它来显示12 )。
| | X: 8 cores | Y: 12 cores |
| | 4x2 (no HT) | 2x6 (HT) |
|------------------------|-------------|-------------|
| Desired output | 8 | 12 |
| GetSystemInfo | 4 | 2 |
| %NUMBER_OF_PROCESSORS% | 8 | 24 |"wmic cpu get NumberOfCores"为每个套接字获取信息。例如:
X:
>wmic cpu get NumberOfCores
NumberOfCores
2
2
2
2Y:
>wmic cpu get NumberOfCores
NumberOfCores
6
6含义
| | X: 8 cores | Y: 12 cores |
| | 4x2 (no HT) | 2x6 (HT) |
|----------------------------|-------------|-------------|
| Desired output | 8 | 12 |
| GetSystemInfo | 4 | 2 |
| %NUMBER_OF_PROCESSORS% | 8 | 24 |
| wmic cpu get NumberOfCores | 2,2,2,2 | 6,6 |叹一口气。
我希望在CMD中保持简单,但是我正在考虑启动一个Powershell脚本来完成所有的数学和其他工作。
有什么想法吗?
发布于 2018-12-20 14:31:30
建议的命令不能在64个逻辑核的计算机上工作。
(Get-CimInstance Win32_ComputerSystem).NumberOfLogicalProcessors
提供逻辑核的数量(HT核)
发布于 2020-10-27 19:47:35
您可以对所需的属性使用Get-ComputerInfo和scope。
$processor = Get-ComputerInfo -Property CsProcessors
$processor.CsProcessors这应该会让你觉得
Name : Intel(R) Core(TM) i7-6600U CPU @ 2.60GHz
Manufacturer : GenuineIntel
Description : Intel64 Family 6 Model 78 Stepping 3
Architecture : x64
AddressWidth : 64
DataWidth : 64
MaxClockSpeed : 2808
CurrentClockSpeed : 2607
NumberOfCores : 2 <== that one
NumberOfLogicalProcessors : 4
…
…然后,只需在结果中查找NumberOfCores即可。
发布于 2017-01-20 05:20:11
如果我理解您对每个服务器的问题,您希望检索一个整数,即物理处理器(核心)的总数。取决于超线程是否可用和启用,这可能是逻辑处理器数量的一半,但您特别希望排除这些。
WMI类的实例表示单个处理器套接字。NumberOfCores属性指示该套接字提供的物理处理器数量。我们可以在PowerShell中使用cmdlet查询这个问题。
Get-CimInstance -ClassName 'Win32_Processor' `
| Select-Object -Property 'DeviceID', 'Name', 'NumberOfCores'要为每个NumberOfCores实例添加Win32_Processor属性,我们可以使用cmdlet
Get-CimInstance -ClassName 'Win32_Processor' `
| Measure-Object -Property 'NumberOfCores' -Sum在结果对象中,Sum将包含物理核的总数,Count将包含套接字的总数。
请注意,在旧版本的Windows/PowerShell中,您可能需要将cmdlet替换为Get-CimInstance。此外,如果您确实希望获得逻辑(超线程)处理器的计数,则可以用NumberOfLogicalProcessors属性代替NumberOfCores。由于Windows10/Server 2016也有一个NumberOfEnabledCore属性。
https://stackoverflow.com/questions/39274324
复制相似问题