ZetCode

PowerShell 进程管理

最后修改:2025 年 2 月 15 日

本教程涵盖了 PowerShell 中用于管理系统进程的基本命令。学习如何通过 cmdlet 查看、停止和控制应用程序及服务。

进程是正在运行的程序实例,它们会消耗系统资源。PowerShell 提供了强大的命令来与进程交互,以便进行系统管理。

列出进程

使用 Get-Process 来检索有关正在运行的进程的信息

processes.ps1
Get-Process

此命令显示所有活动的进程,并提供 ID、CPU 使用率和内存消耗等详细信息。添加进程名称作为参数可以筛选结果。

Get-Process

不带参数执行会以表格格式列出所有正在运行的进程。列包括 Handles、CPU 和 ProcessName。

PS C:\> .\processes.ps1

Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
-------  ------    -----      -----     ------     --  -- -----------
    435      25    62248      70972       1.58   9360   2 chrome
    258      15    15244      27208       0.09   4788   2 explorer

停止进程

使用 Stop-Process 终止进程。在停止系统进程时务必小心。

stop_process.ps1
Stop-Process -Id 1234 -Force
Stop-Process -Name "notepad" -Force

第一个命令通过 ID 停止进程,第二个命令终止指定进程的所有实例。-Force 参数可确保立即终止。

-Id 1234

指定要终止的进程 ID。使用 Get-Process 获取 ID。

-Name "notepad"

定位具有指定名称的所有进程。支持通配符以进行部分匹配。

启动进程

使用 Start-Process 启动应用程序

start_process.ps1
Start-Process notepad -PassThru

这会启动记事本并返回一个进程对象。-PassThru 参数允许对新进程进行进一步操作。

-PassThru

为新创建的进程返回一个进程对象,允许访问属性或将其传递给其他命令。

筛选进程

Get-ProcessWhere-Object 结合使用进行高级筛选

filter_processes.ps1
Get-Process | Where-Object {$_.CPU -gt 100}

此管道显示 CPU 使用时间超过 100 秒的进程。调整比较值以设置不同的阈值。

{$_.CPU -gt 100}

筛选 CPU 属性超过 100 秒的进程。$_ 变量代表当前的管道对象。

来源

PowerShell 文档

精通 PowerShell 中的进程管理可以实现高效的系统监控和资源控制。这些命令构成了自动化脚本和管理任务的基础。

作者

Jan Bodnar 是一位拥有 15 年以上经验的软件开发人员和技术作家。他专注于创建全面的编程教程和系统管理指南。

列出 所有 PowerShell 教程