HOWTO · PowerShell

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

本文说明了我们如何在 PowerShell 上从本地计算机获取性能指标。我们使用 PowerShell 中的 Get-Counter cmdlet 从 Windows 的性能监控程序中获取性能计数器数据。

本文说明了如何通过 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-TableAutoSize 参数通过调整列宽来最小化截断。

如果您想获取类似于 Windows 任务管理器中显示的进程的列表,可以使用下面的命令:

Get-Counter "\Process(*)\Working Set - Private"

运行进程的计数器集

要获取句柄计数,请运行以下命令:

Get-Counter "\Process(*)\Handle Count"

处理计数

总之,Get-Counter cmdlet 是我们在想要监控本地和远程系统中不同计数器集合的性能指标时的首选命令。