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

本篇文章說明了如何在 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-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