特定进程的远程处理器/内存使用情况
我正在做一个项目来获取CPU使用率%,以及特定进程的RAM使用率(KB),大约为6。
我遇到了一个获取cpu%的很好的指南,它使用了以下代码:
# Option A: This is if you just have the name of the process; partial name OK
$ProcessName = "winlogon"
# Option B: This is for if you just have the PID; it will get the name for you
#$ProcessPID = "6860"
#$ProcessName = (Get-Process -Id $ProcessPID).Name
$CpuCores = (Get-WmiObject Win32_ComputerSystem).NumberOfLogicalProcessors
$Samples = (Get-Counter "Process($Processname*)% Processor Time").CounterSamples
$Samples | Select InstanceName,
@{Name="CPU %";Expression={[Decimal]::Round(($_.CookedValue / $CpuCores), 2)}}
但是,我无法找到一种方法让它碰到远程机器。 我可以用它来列出本地进程,并且我已经尝试在Get-WmiObject
添加-ComputerName
开关和PC名称来Get-WmiObject
远程处理器数量。 这会导致脚本在Select
失败。 我也尝试用2对$CpuCores
值进行硬编码,并对远程机器使用Get-Counter
,但我不确定如何格式化给定的具体示例。
我从头开始写这篇文章没有问题,但是我很难弄清楚如何获取特定进程的CPU或RAM使用情况。 最终目标是将结果显示在TextBox控件中,该控件可以通过Name,CPU%利用率和内存利用率进行读取。
我有GUI需要PC名称和结果文本框,但我无法开发逻辑甚至无法获取我需要的数据。 有什么想法吗? 我花了大约2天的时间来梳理互联网,并发现了许多CPU和内存使用方法,但没有任何方法可以粘在一起或远程使用。 我对PowerShell并不陌生,但这是令人困惑的。 任何帮助开发逻辑将不胜感激。
链接地址: http://www.djcxy.com/p/79825.html