我试图在5分钟内获取以下计数器。如果它连续5次返回100,我希望收到电子邮件。
get-counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 60 -MaxSamples 5
我试着把这段代码赋给一个变量,例如:
$value = get-counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 60 -MaxSamples 5
if($value eq 100)
{
$counter = $counter + 1
}
if($counter > 4)
{
"send an email"
}
问题是我不能得到实际的计数器值来赋值给$value变量,而且我希望计数器在每次代码触发时递增(在它达到maxsamples值之前)。
任何帮助都将不胜感激。
3条答案
按热度按时间kadbb4591#
Get-Counter返回一个
Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet
类型的数组,因此必须按如下方式处理它:一个更通用的解决方案:
lc8prwob2#
我觉得你想要这样的东西:
或者,如果要在百分比上下文中执行此操作,请执行以下操作:
qv7cva1a3#
试试这个:
由于我们使用的是管道,上面将发送电子邮件,只要你有5个连续的值大于或等于100。