监视进程并发送有关内存使用情况的电子邮件



我是Powershell的新手。我必须监视一个进程,并根据内存使用情况发送电子邮件通知。我对发送电子邮件的功能很好,工作正常。但是计算内存使用情况是我的问题,我无法从 system.object 转换为 Intiger.My poewershell 脚本是 test.ps1 如下:-

#$p = get-process chrome | select @{l="Private Memory (MB)"; e={$_.privatememorysize / 1mb}}

$f= [Math]::Round($p, 2) 
if($t -lt 40)
{ send email}

即使我尝试过这个$t=Get-WmiObject -Class Win32_Process -filter "Name='Powershell.exe'" | select workingSetSize | fl。

但它对我来说效果不佳...

首先,使用 Set-StrictMode -version 2.0 捕获未初始化的变量$p

#$p = get-process chrome | select @{l="Private Memory (MB)"; e={$_.privatememorysize / 1mb}}
PS C:> $f= [Math]::Round($p, 2)
The variable '$p' cannot be retrieved because it has not been set.

这是因为初始化$p的部分被注释了 # $p = get-process .请注意哈希字符。

Get-Process将返回一个不需要太多清理的对象。

PS C:> $p = get-process powershell
PS C:> [Math]::Round($p.privatememorysize/1mb, 2)
67,4

最新更新