当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell 获取进程 | PowerShell Get-Process 中的参数

作者:精品下载站 日期:2024-12-14 04:54:07 浏览:13 分类:玩电脑

PowerShell 获取进程 | PowerShell Get-Process 中的参数


[玩转系统] PowerShell 获取进程 | PowerShell Get-Process 中的参数

PowerShell 获取进程简介

PowerShell 中的 Get-Process cmdlet 用于检索系统中以及远程系统中运行的进程列表。这些进程可以是应用程序或系统进程。这些进程与您在任务管理器的“进程”选项卡中看到的进程相同。

句法

Get-Process
[[-Name] <String[]>]
-Id <Int32[]>
-InputObject <Process[]>
-ComputerName <String>
[-Module]
[-FileVersionInfo]
[-IncludeUserName]
[<CommonParameters>]

上述语法可以使用不同的组合。并非所有组合都始终有效。例如,Module 和 FileversionInfo 参数不能一起使用。

参数

一些参数如下:

  • -Name:提供 -Name 参数时,PowerShell 会检索具有该名称的所有进程。允许使用通配符 (*)。您可以提供多个进程名称,并用逗号 (,) 分隔。
  • -ID:ID 参数定义进程 ID。当提供特定进程 ID 时,PowerShell 会检索有关该进程 ID 的信息。进程 ID 始终是整数。进程 ID 是 Get-Process 输出的默认值。您还可以从资源管理器获取 PID。
  • -Module:当使用 Get-Process 指定此参数时,它会显示进程已加载的所有模块。当 PowerShell 以管理员身份运行时,此参数显示所有用户的所有模块。
  • 您可以通过在 -ComputerName 参数中提供系统名称或运行 Invoke-Command 在远程计算机上运行此命令。
  • 您不能使用此参数来管道化 Stop-Process 命令。
  • -ComputerName:您可以提供远程系统名称来检索远程计算机上运行的进程。您可以提供多个计算机名称,并用逗号 (,) 分隔。
  • -IncludeUserName:添加此参数后,进程输出将显示运行特定进程的用户名列。
  • -FileVersionInformation:此参数提供负责特定进程的文件或应用程序的版本。要获取不同用户的所有进程文件版本信息的列表,您需要以管理员身份运行PowerShell控制台。
  • 您可以使用 -ComputerName 参数或 Invoke-Command 参数从远程计算机检索文件版本详细信息
  • -InputObject:它指定流程对象。创建高级函数时,还可以将输入对象指定为 Pipeline 或包含流程对象的变量。

Powershell 中的 Get-Process 示例

PowerShell的示例如下所示:

1. 简单的Get-Process命令

Get-Process

当您仅在没有特定参数的情况下运行上述命令时,下表输出是默认输出。

句柄、NPM(K)、PM(K)、WS(K)、Id、SI、进程名称
输出:

[玩转系统] PowerShell 获取进程 | PowerShell Get-Process 中的参数

2. 使用 -Name 参数获取进程

Get-Process -Name chrome

输出:

[玩转系统] PowerShell 获取进程 | PowerShell Get-Process 中的参数

要过滤多个进程,请使用逗号 (,) 分隔进程名称。

Get-Process -Name chrome,WINWORD,AcroRd32

[玩转系统] PowerShell 获取进程 | PowerShell Get-Process 中的参数

3. 使用 -ID 参数获取进程

这里的ID是指进程ID(PID)。您可以使用参数之一(ID 或 PID),两者的工作方式相同。

Get-Process -PID 17656

[玩转系统] PowerShell 获取进程 | PowerShell Get-Process 中的参数

您也可以过滤多个 PID。

Get-Process -Id 17656,4436,1208

[玩转系统] PowerShell 获取进程 | PowerShell Get-Process 中的参数

4. 使用 -Module 参数获取进程

Get-Process -Module

输出:

[玩转系统] PowerShell 获取进程 | PowerShell Get-Process 中的参数

您可以通过提供进程名称来查找特定的进程模块。

例如,

Get-Process Calculator -Module

[玩转系统] PowerShell 获取进程 | PowerShell Get-Process 中的参数

5. 使用 -FileVersionInformation 获取进程

要获取特定进程的文件版本,请使用以下命令。

Get-Process chrome -FileVersionInfo

输出:

[玩转系统] PowerShell 获取进程 | PowerShell Get-Process 中的参数

6. 使用 -IncludeUserName 命令获取进程

当您以管理员身份运行 PowerShell 时,您可以看到以不同用户身份运行的所有进程。

Get-Process -IncludeUserName

要检查特定用户运行的进程,您可以过滤用户名。

例如,系统运行的进程。

Get-Process -IncludeUserName | where {$_.Username -like "*System*"}

输出:

[玩转系统] PowerShell 获取进程 | PowerShell Get-Process 中的参数

7. 使用 -ComputerName 参数获取进程

您还可以使用远程系统的上述所有命令。要获取远程系统上的进程,请使用 -ComputerName 参数。

Get-Process -ComputerName Test-PC

要获取远程计算机上具有特定 PID 的进程,

Get-Process -PID 12008 -ComputerName Test-PC

8. 限制Get-Process显示的输出

您还可以限制从第一个到最后一个要显示的进程数。

如果您想列出前 10 个进程,则可以在 Select 命令中使用 -First 参数。

Get-Process | Select -First 10

输出:

[玩转系统] PowerShell 获取进程 | PowerShell Get-Process 中的参数

要获取最后 10 个进程,请使用 -Last 参数。

Get-Process | Select -Last 10

输出:

[玩转系统] PowerShell 获取进程 | PowerShell Get-Process 中的参数

9. 对 Get-Process 输出进行排序

您可以使用 Sort-Object 命令对 Get-Process 的输出进行排序。

在下面的示例中,我们将按内存利用率(工作集)对进程进行升序和降序排序,并获取前 5 个值。

Get-Process | Sort-Object WorkingSet | Select -First 5

[玩转系统] PowerShell 获取进程 | PowerShell Get-Process 中的参数

上面的输出将按升序排列。要将进程按降序排序,请使用 -Descending 参数。

Get-Process | Sort-Object WorkingSet -Descending | Select -First 5

[玩转系统] PowerShell 获取进程 | PowerShell Get-Process 中的参数

10. 对流程进行分组

您可以使用名称对类似的进程进行分组,以便您可以识别该进程有多少个实例正在运行。

Get-Process | Group-Object ProcessName | Select Count, Name

[玩转系统] PowerShell 获取进程 | PowerShell Get-Process 中的参数

结论

Get-Process 是系统管理员监控系统性能的绝佳工具。管理员可以根据 CPU 和内存利用率对输出进行排序,并且通过命令行,管理员可以找到哪个特定应用程序和特定用户正在运行哪些进程。您还可以通过管道 Stop-Process 命令来停止进程。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯