【问题标题】:Simple way to get CPU load from Windows Server via PowerShell通过 PowerShell 从 Windows Server 获取 CPU 负载的简单方法
【发布时间】:2013-08-22 21:33:14
【问题描述】:

尝试编写一个脚本,以便使用 PowerShell 从一组服务器获取当前 CPU 负载。有没有一种简单的方法可以做到这一点。我正在使用 Get-WmiObject win32_processor |选择负载百分比。

基本上,如果使用率高于 75%,我会尝试获取 CPU 负载并显示红色,如果使用率低于 75%,则显示为绿色。最好显示负载百分比。

到目前为止,我有这个不完整的,可能是完全错误的:

$Servers = Get-QADComputer -sizelimit 0 | where {$_.Name -like "*myserver*"} | select Name
foreach($Server in $Servers){
    $I = $Server.Name
    $result = Get-WmiObject win32_processor -ComputerName $Server.Name | select LoadPercentage | ft 
    if($result -eq $null){
    Write-Host $Server.LoadPercentage "Less than 75% CPU Load" -ForegroundColor "Green"
}
}

【问题讨论】:

标签: powershell scripting powershell-2.0


【解决方案1】:

假设$Servers 集合中填充了主机名,那么您就离得不远了。我没有 Quest 工具,所以无法查看收藏。

# Best practice: avoid mistyped variable names
set-psdebug -strict
$Servers = Get-QADComputer -sizelimit 0 | where {$_.Name -like "*myserver*"} | select Name
# Best practice: avoid magic numbers; readonly variable for 
new-variable -name CPULIMIT -value 75 -option readonly

foreach($Server in $Servers){
    $result = Get-WmiObject win32_processor -ComputerName $Server.Name
    # TODO: add error handler here in case $server is unavailable
    # Compare the wmi query result to the limit constant
    if($result.LoadPercentage -le $CPULIMIT){
        # Write a formatted string that contains the server name and current load
        Write-Host $("Less than 75% CPU Load on {0} ({1}%)" -f $server, $result.LoadPercentage) -ForegroundColor "Green"
    } else {
        # A warning message would be usefull too
        Write-Host $("Over than 75% CPU Load on {0} ({1}%)" -f $server, $result.LoadPercentage) -ForegroundColor "Red"
    }
}

【讨论】:

  • 那肯定会返回一个很棒的结果,但它不会返回负载百分比。例如,我得到结果: MYSERVER2 上的 CPU 负载低于 75% (%) 有什么想法吗?非常感谢你,这是一个很大的帮助。
  • @user2707263,运行 Get-WmiObject win32_processor -ComputerName myserver2 并检查 LoadPercentage 属性是否有合理的值。
  • 是的,它给出了当时准确的负载值,例如: Level : 6 LoadPercentage : 2 Manufacturer : GenuineIntel MaxClockSpeed : 2933 Name : Intel(R) Xeon(R) CPU X5670 @ 2.93GHz
猜你喜欢
  • 2015-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-05
  • 1970-01-01
  • 2017-10-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多