如何在 PowerShell 中获取类似于任务管理器的进程列表

本文说明了如何通过 PowerShell 从本地计算机获取性能指标。我们使用 PowerShell 中的 Get-Counter
cmdlet 从 Windows 的性能监控程序中获取性能计数器数据。
使用 Get-Counter
获取类似于任务管理器的进程列表
正如我们之前提到的,Get-Counter
cmdlet 允许我们列出所有可用的性能计数器,监视并显示来自这些计数器的数据。该 cmdlet 可以在本地和远程系统上工作。
Get-Counter
cmdlet 默认以一秒的间隔显示一组计数器。由于大多数计数器集合(指标)受 ACL(访问控制列表)的保护,建议以管理员身份运行 PowerShell。
Get-Counter
列出的默认计数器涉及网络、处理器和内存。它还列出了一些关于硬盘的数据。
要获取本地计算机上所有计数器集合的列表,请运行以下命令。
Get-Counter -ListSet *
添加 ListSet
参数和一个星号 *
指示 Get-Counter
cmdlet 从我们的计算机中获取所有计数器集合的列表。请注意 MachineName
列中的点 .
;这表示我们的本地计算机。
我们可以选择一个计数器集合,并指定采样间隔和最大样本数。下面的示例将从我们本地计算机的所有处理器获取指标。
该 cmdlet 将以三秒的间隔提取数据,并显示四个样本。
Get-Counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 3 -MaxSamples 4
在上面的命令中,我们使用 Counter
参数给出计数器路径 \Processor(_Total)\% Processor Time
。然后,我们通过 SampleInterval
参数为指定的计数器设置三秒的间隔。
MaxSamples
参数规定我们检查计数器的最大次数为四次。如果您想要获取特定计数器的连续样本,请使用如下所示的 -Continuous
参数:
Get-Counter -Counter "\Processor(_Total)\% Processor Time" -Continuous
这将以一秒的间隔持续提取样本,直到您中断执行。您可以通过按 CTRL + C 来完成此操作。
您可以使用 SampleInterval
参数指定间隔。
您可以按字母顺序对列表进行排序,如下所示:
Get-Counter -ListSet * |
Sort-Object -Property CounterSetName |
Format-Table CounterSetName, CounterSetType -AutoSize
结果通过管道传递给 Sort-Object
cmdlet。Property
参数指定 CounterSet
对象应按 CounterSetName
排序。
结果随后通过管道传递给 Format-Table
。AutoSize
参数通过调整列宽来最小化截断。
如果您想获取类似于 Windows 任务管理器中显示的进程的列表,可以使用下面的命令:
Get-Counter "\Process(*)\Working Set - Private"
要获取句柄计数,请运行以下命令:
Get-Counter "\Process(*)\Handle Count"
总之,Get-Counter
cmdlet 是我们在想要监控本地和远程系统中不同计数器集合的性能指标时的首选命令。
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn