首页/系统/Windows 运维速查/Stop-Process 结束进程

Stop-Process 结束进程

PowerShell 结束进程:按名称或 PID,-Force 强制;可组合对象筛选实现精确制导。

Windows 运维速查系统更新于 2026-10-13

Stop-Process 是什么

Stop-Process 是 PowerShell 里结束进程的命令,可以按进程号或名称结束,-Force 用于强制终止。它的优势在于能与管道组合:先用 Get-Process 过滤出目标列表,确认无误再管道交给它,实现精确制导而不是粗暴全杀。

基本信息

适用平台Windows PowerShell 5.1 与 PowerShell 7
语法Stop-Process -Id 编号 [-Force];Stop-Process -Name 名称 [-Force]
安全用法先用 Get-Process 过滤并查看列表,再管道结束
预演Stop-Process -Id 编号 -WhatIf
权限要求结束其他用户或系统进程需要管理员权限
同类命令taskkill 支持按用户名、状态等条件过滤

典型使用场景

  • 结束无响应的程序,先用 -WhatIf 预演一遍
  • 批量结束某类测试进程,提前用管道过滤避免误杀
  • 排查内存或句柄问题时先列出目标进程再逐个处理
  • 脚本收尾阶段清理自己启动的子进程
  • 结合内存排序,处理占用异常高的进程

常用示例

常用示例
# 先看清目标,再决定结束谁
Get-Process notepad | Select-Object Id, Name, StartTime
# 预演:只显示将要结束的对象
Stop-Process -Id 4321 -WhatIf
# 按名称结束,会命中全部同名进程
Stop-Process -Name notepad -Force
# 管道写法,精确结束过滤后的对象
Get-Process -Id 4321 | Stop-Process -Force
# 结束之后再确认没有残留
Get-Process notepad -ErrorAction SilentlyContinue

参数与风险

参数作用风险
-Id 编号精确结束指定进程编号会被复用,动手前应确认目标
-Name 名称结束全部同名进程多实例环境容易误伤
-Force强制终止程序没有机会保存与清理
-WhatIf只显示将要结束的对象无风险,建议先跑一次
-Confirm对每个对象逐一确认批量场景下会阻塞脚本
用名称匹配会结束所有同名进程,多用户或多实例环境中容易误伤。稳妥做法是先列出进程号与启动时间,确认后再按编号结束。
由服务托管的进程(例如 Web 服务器的工作进程)应通过服务控制来停止,直接杀进程会让服务状态异常,甚至触发自动恢复机制反复重启。

易错点

  • 按名称结束会命中所有同名进程,多实例环境容易误杀其他会话的任务
  • 服务托管的进程被直接杀会造成服务状态异常,应通过服务控制命令停止
  • 不加 -Force 时进程可能因等待用户确认而不退出,脚本会一直阻塞
  • 进程号会被系统复用,保存的旧编号过一段时间可能指向完全不同的进程
  • 强制终止正在写文件或提交事务的进程,可能造成数据不一致

数据来源与参考

  • Microsoft Learn:Stop-Process

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌