我正在编写一个脚本来监控PowerShell中的一些性能问题。以下是我想要做的概述。
我希望这是无限运行(一旦直到部分完成重新开始),但是我在围绕其中一些循环概念缠绕我的大脑时遇到了麻烦。根据我的阅读,我可能会使用break
或continue
,但我不确定最有效的方法是什么。
以下是我正在使用的代码的一部分。如果重要的话,我正在使用一个函数来记录日志功能并将其作为一个Job运行,因此它就在后台。
Add-Type -AssemblyName System.Windows.Forms
Do{
$value = (Get-Counter -Counter "\Memory\% committed bytes in use").CounterSamples.CookedValue
LogOnly -Text "Committed bytes in use is currently $($value)"
Start-Sleep -Seconds 60
}
Until($value -gt 60)
LogOnly -Text "Commited bytes in use is currently $($value)."
$Processes = Get-Process | Where {$_.PM -gt 500MB} | ForEach {LogOnly -Text "Processes above 300MB is $($_.ProcessName)"}
[System.Windows.Forms.MessageBox]::Show("Committed Memory % has increased to $value.", 'Memory Warning', '0', 'Warning')
由于
答案 0 :(得分:1)
这对我来说很好用:
while ( $true ) {
$value = (Get-Counter -Counter "\Memory\% committed bytes in use").CounterSamples.CookedValue
if ( $value -lt 60 ) {
Write-Host "Committed bytes in use is under limit. Value is currently $value"
}
else {
Write-Host "Commited byes in use is over limit. Value is currently $value"
}
Start-Sleep -Seconds 3
}