特定进程

时间:2017-04-19 20:56:08

标签: powershell memory cpu

我正在做一个项目来获取特定进程的CPU使用率百分比以及RAM使用率(以KB为单位),大约为6。

我遇到了great guide来获取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)}}

但是,我找不到让它能够打到远程机器的方法。我可以使用它来列出本地进程,并且我尝试将带有PC名称的-ComputerName开关添加到Get-WmiObject以获取远程处理器计数。这会导致脚本在Select失败。我还尝试使用2对$CpuCores值进行硬编码并对远程计算机使用Get-Counter,但我不确定如何根据具体示例对其进行格式化。

我从头开始写这个没有问题,但是我很难搞清楚如何获得特定进程的CPU或RAM使用率。最终目标是在TextBox控件中显示结果,该控件可由Name,CPU%利用率和内存利用率读取。

我有一个带有PC名称的GUI,以及一个结果的文本框,我在开发逻辑时遇到了麻烦,甚至无法获得我需要的数据。有什么想法吗?我花了大约2天的时间梳理互联网,发现了许多CPU和内存使用方法,但我没有任何东西可以粘在一起或远程使用。我对PowerShell并不陌生,但这一直令人困惑。任何有关开发逻辑的帮助都将受到赞赏。

0 个答案:

没有答案