HOWTO · PowerShell

如何在 PowerShell 中獲得類似於任務管理器的進程列表

本文說明了我們如何在 PowerShell 上從本地計算機獲取性能指標。我們使用 PowerShell 上的 Get-Counter Cmdlet 從 Windows 的性能監控程序中獲取性能計數器數據。

本篇文章說明了如何在 PowerShell 中從我們的本地計算機獲取性能指標。我們使用 PowerShell 中的 Get-Counter cmdlet 來從 Windows 的性能監控程序中獲取性能計數器數據。

使用 Get-Counter 獲取類似於 PowerShell 中任務管理器的進程列表

正如我們之前提到的,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 是我們想要監控本地和遠程系統中不同計數器集的性能指標時的首選命令。