过滤处理结果将删除所需的输出

时间:2015-08-11 18:28:35

标签: powershell memory

我的任务是连接到某些远程服务器并检索有关服务器上运行的进程的信息。无法保证每个进程都将在服务器上运行。

以下是我检索流程信息的代码:

$processResult = (get-process trustedInstaller, werfault, econagt -computername $server -ErrorAction SilentlyContinue | select name, @{l= "Private Memory (MB)"; e={$_.privatememorysize / 1mb}})

然后我需要确定上述任何一个进程是否消耗了更多10mb的内存。我已经使用此查询完成了此操作:

$highProcess = $processResult | ? {$_.'Private Memory (GB)' -gt 1mb}

上面的代码行没有产生任何结果,即使有一些进程超过了10MB的阈值。

以下是$processResult的示例输出:

DMOBBQ-008:@{Name=TrustedInstaller; Private Memory (MB)=2.36328125}
DCOBF1-003:@{Name=TrustedInstaller; Private Memory (MB)=12.546875}
DCOBF1-013:@{Name=TrustedInstaller; Private Memory (MB)=11.328125}
DCOBF2-005:@{Name=TrustedInstaller; Private Memory (MB)=11.00390625}
DCOBF2-006:@{Name=TrustedInstaller; Private Memory (MB)=12.2265625}
DCOBF2-007:@{Name=TrustedInstaller; Private Memory (MB)=11.55078125}
DCOBF2-015:@{Name=TrustedInstaller; Private Memory (MB)=13.40234375}
DMOBB8-007:@{Name=TrustedInstaller; Private Memory (MB)=11.99609375}
DMOBBE-000:@{Name=TrustedInstaller; Private Memory (MB)=11.22265625}
DMOBBQ-005:@{Name=TrustedInstaller; Private Memory (MB)=12.2890625}
DMOBBQ-006:@{Name=TrustedInstaller; Private Memory (MB)=2.40234375}
DMOBBQ-007:@{Name=TrustedInstaller; Private Memory (MB)=2.3671875}
DMOBBR-007:@{Name=TrustedInstaller; Private Memory (MB)=2.3671875}
DMOBC4-002:@{Name=TrustedInstaller; Private Memory (MB)=11.77734375}
DMOBBR-005:@{Name=TrustedInstaller; Private Memory (MB)=2.41015625}
DCOBBN-D06:@{Name=TrustedInstaller; Private Memory (MB)=12.0625}

关于$highProcess的结果为何为空的任何输入?

1 个答案:

答案 0 :(得分:2)

您的processresult单位已经是MB。 1mb被转换为以字节为单位的等效值,因此您将(例如)2.36328125与值1048576进行比较!