PowerShell Get-Process
最后修改:2025 年 2 月 15 日
在本文中,我们将介绍PowerShell中的Get-Process cmdlet。此cmdlet用于检索有关系统上正在运行的进程的信息。
进程基础知识
进程是正在运行的程序的一个实例。每个进程都有唯一的标识符(PID)、名称和资源使用统计信息。可以使用各种cmdlet通过PowerShell管理进程。Get-Process cmdlet是进程监视和管理的基础。
Get-Process基本用法
使用Get-Process的最简单方法是不带任何参数。这将列出系统上所有正在运行的进程。输出包括进程名称、ID和资源使用情况。每个进程都表示为一个Process对象。
Get-Process
此命令检索所有正在运行的进程。默认情况下,输出格式化为表。您可以看到进程名称、ID和CPU使用情况。
按名称获取特定进程
您可以通过名称检索特定进程的信息。使用-Name参数,后跟进程名称。支持通配符以进行部分匹配。当您需要检查特定应用程序是否正在运行时,这很有用。
Get-Process -Name "chrome"
此命令返回名称中包含“chrome”的所有进程。对于Web浏览器之类的应用程序,通常会返回多个进程。
按ID获取进程
还可以通过其唯一的进程ID(PID)检索进程。当您需要精确识别时,这很有用。使用-Id参数,后跟PID。每个正在运行的进程都有一个唯一的数字标识符。
Get-Process -Id 6784
此命令返回ID为6784的进程信息。由于PID是唯一的,因此只会返回一个进程。
格式化进程输出
可以使用Format-List更改默认的表格式以获取详细信息。这将显示进程对象的所有可用属性。您还可以使用Select-Object选择要显示的特定属性。
Get-Process -Name "notepad" | Format-List *
此命令以列表格式显示记事本进程的所有属性。输出包括内存使用情况、线程和其他详细信息。
按CPU使用率过滤进程
您可以根据进程的资源消耗来过滤进程。此示例显示使用大量CPU资源的进程。Where-Object cmdlet用于过滤。这有助于识别性能密集型进程。
Get-Process | Where-Object { $_.CPU -gt 10 }
此命令列出CPU使用时间超过10秒的进程。$_变量代表管道中的当前进程。根据需要调整阈值以进行分析。
按内存使用量排序进程
可以使用Sort-Object按内存消耗对进程进行排序。这有助于识别内存密集型应用程序。-Descending参数首先显示消耗最多的进程。默认情况下,内存使用量以千字节为单位显示。
Get-Process | Sort-Object -Property WS -Descending | Select-Object -First 5
此命令显示按工作集内存排序的前5个进程。WS属性表示工作集大小。您可以使用PM代替私有内存。
获取进程模块
Modules属性包含进程加载的DLL和其他模块。这对于调试或安全分析很有用。使用Select-Object展开Modules属性。每个模块都显示其路径和版本信息。
Get-Process -Name "explorer" | Select-Object -ExpandProperty Modules
此命令列出Windows资源管理器进程加载的所有模块。输出包括模块名称、路径和内存地址。这对于高级故障排除很有用。
获取远程进程
Get-Process可以使用-ComputerName参数从远程计算机检索进程。这需要启用PowerShell Remoting。语法与本地进程检索类似。您必须在远程计算机上具有适当的权限。
Get-Process -ComputerName "Server01"
此命令列出在远程计算机Server01上运行的所有进程。输出格式与本地进程检索相同。网络延迟可能会影响性能。
来源
在本文中,我们介绍了PowerShell中的Get-Process cmdlet。
作者
列出 所有 PowerShell 教程。