使用 SCOM 2012、WMI 或 Powershell 识别所有已关闭超线程的服务器

使用 SCOM 2012、WMI 或 Powershell 识别所有已关闭超线程的服务器

我们最近设置了 SCOM 2012 并将代理部署到我们所有的服务器。我们还注意到,这些服务器中有许多没有启用超线程,而它们应该启用。我们有没有办法使用 SCOM 或 WMI 来查找哪些服务器没有启用超线程。我的想法是,我应该能够找到所有总核心数 = 总线程数的系统,因为这表明超线程已禁用(或不可用)。

来自 Server 2012 任务管理器的示例(12 个核心和 12 个“逻辑处理器”/线程,应为 24 个线程):

这需要超线程

答案1

以下 Powershell 脚本使用 WMI 通过比较核心与线程来查找哪些计算机未启用超线程。您应该在管理控制台中使用域管理员帐户运行它:

$cs = Get-ADComputer -LDAPFilter "(name=host*)"
foreach($c in $cs){
    gWmi -class Win32_Processor -ComputerName $c.Name | select SystemName,DeviceID,Number*
}

这将显示 Active Directory 中名称以 host 开头的所有计算机的 CPU 核心和线程数。如果有多个 CPU,它们将显示为 CPU0、CPU1 等。示例:

在此处输入图片描述

我仍然认为应该有一种方法可以使用 SCOM 来做到这一点,但上述方法有效。

相关内容