【发布时间】:2021-12-29 09:00:27
【问题描述】:
我需要监控 cpu 和 ram 的使用情况,但要监控 Powershell 中的百分比。 我试图做一些事情,但这很奇怪。 该代码有两个部分,我需要将这些部分组合起来并能够发送电子邮件。 我最大的问题是电子邮件不清晰。
第一部分:
$repeat_count = 3
$cpu_threshold = 80
$sleep_interval = 5
$hit = 0
foreach($turn in 1..$repeat_count) {
$cpu = (gwmi -class Win32_Processor).LoadPercentage
#write-host “CPU is $cpu`%”
If($cpu -ge $cpu_threshold) {
$hit = $hit+1
}
start-sleep $sleep_interval
}
if($hit -eq 3) {
write-host “CPU is more then $cpu_threshold`%”
Send-MailMessage -From user01@fabrikam.com -To user02@fabrikam.com -Subject “CPU2 is more then $cpu_threshold`%” -Body “CPU is $cpu`%” -Encoding UTF8 -SmtpServer smtp@fabrikam.com
} else {
write-host “CPU is under the limit”
}
第二部分:
Get-Counter -ErrorAction SilentlyContinue '\Process(*)\% Processor Time' | Select-Object -ExpandProperty countersamples| Select-Object -Property instancename, cookedvalue| ? {$_.instanceName -notmatch "^(idle|_total|system)$"} | Sort-Object -Property cookedvalue -Descending| Select-Object -First 5| ft InstanceName,@{L='CPU';E={($_.Cookedvalue/100/$env:NUMBER_OF_PROCESSORS).toString('P')}} -AutoSize
你能帮我如何发送一封带有清晰 -body 的电子邮件吗? 非常感谢
【问题讨论】:
-
附加
ConvertTo-Html以获得清晰的电子邮件body。否则,如果您需要汇总一些结果,您可以查看ConvertTo-HtmlTable。 -
已经内置了性能监视器,它可以发送电子邮件警报。为什么不使用它?
-
为什么不使用 SCOM?
标签: powershell scripting