如何在PowerShell属性VM中获取Get-Process(以兆字节为单位)?



我将在PowerShell中编写命令,它将输出我的进程名称和虚拟内存。我需要将我的值 vm 更改为兆字节。

Get-Process| Sort VM | Format-Table -p name,VM

我有这个

Name                                                                                    VM
----                                                                                    --
Idle                                                                                     0
smss                                                                               3121152
System                                                                             6053888
AEADISRV                                                                          18485248
lsm                                                                               23670784
SearchFilterHost                                                                  24240128
svchost                                                                           27344896
svchost                                                                           27922432
wininit                                                                           31449088
svchost                                                                           34127872
armsvc                                                                            34938880
lsass                                                                             35885056
WUDFHost                                                                          36036608
csrss                                                                             36552704
winlogon                                                                          37531648
svchost                                                                           37638144

如果进程> 100 Mb VM,我还需要更改颜色

Format-Tablecmdlet 不支持着色。您可以做的是更改每行的颜色。

如果您愿意放弃漂亮的表格格式,请将结果传递给管道并使用Write-Host -ForegroundColor在单元格级别指定颜色。这样

gwmi win32_process | select name,processid,vm | % {
$params = @{ Object = $_ }
$mem = $params["Object"].VM/1MB
if([int]$mem -ge 100 ) {
write-host -nonewline -foregroundcolor yellow $mem " "
} else {
write-host -nonewline $mem " "
}
write-host $params["Object"].name " " $params["Object"].processid
}

另一种方法是将结果保存在一些临时介质上,并在以后添加颜色。这需要更多的代码。Petri 有一个很好的例子,其中包含比我愿意在这里复制粘贴的代码更多的代码。

相关内容

最新更新