系统学习 Windows 学习路径:从 CMD 到 PowerShell、系统网络,再到 WSL 与 Server

Stop-Process

终止指定进程,不执行保存或优雅关闭;误用会直接丢失未保存数据。

补充说明

Stop-Process 按进程对象、Id 或 Name 结束进程,默认不输出结果,加 -PassThru 返回已终止的 Process 对象;别名是 spps、kill。它调用的是强制终止,不会像窗口的“关闭”那样给应用保存机会;GUI 程序可先尝试 CloseMainWindow()。

管道:接受 Process 对象按值输入,也接受 Id/Name 按属性名绑定,所以 Get-Process notepad | Stop-Process 可直接工作。权限:只能结束当前用户拥有的进程;其他用户的进程需要管理员,受保护的系统进程即使提权也可能失败。-Force 用于跳过确认并处理需要强制的场景,但不等于绕过 UAC 或 ACL。

边界:服务应通过 Stop-Service 让 SCM 走 OnStop 流程;挂起的进程才用 Stop-Process。版本:5.1 与 7.x 的核心语义一致;7.x 在 Unix 上直接发送终止信号,没有 Windows 的进程所有权和 GUI 关闭语义。

常用示例

# 1. 先预览会结束哪些实例,再决定是否执行
PS C:\> Get-Process notepad | Stop-Process -WhatIf

# 2. 按名称结束全部记事本实例;会丢失未保存内容
PS C:\> Get-Process -Name notepad | Stop-Process -Force

# 3. 按 PID 精确结束,并返回被终止的对象用于记录
PS C:\> Stop-Process -Id 1234 -PassThru

# 4. 只结束内存超过 1 GB 的 chrome 实例,缩小影响范围
PS C:\> Get-Process | Where-Object { $_.Name -eq 'chrome' -and $_.WorkingSet64 -gt 1GB } | Stop-Process -Force

# 5. 先请求窗口正常关闭,给应用保存机会
PS C:\> Get-Process notepad | ForEach-Object { $_.CloseMainWindow() }

# 6. 捕获不存在的 PID,避免脚本静默失败
PS C:\> try { Stop-Process -Id 999999 -ErrorAction Stop } catch { $_.Exception.Message }

易错点与排错

相关命令

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. Stop-Process 和窗口右上角的关闭按钮在数据保存上有什么区别?
  2. 为什么 Stop-Process -Name chrome 可能影响多个用户会话?
  3. -Force 能解决“拒绝访问”吗?应该怎样处理?
答案
  1. 关闭按钮会发关闭消息,应用可提示保存;Stop-Process 直接终止,未保存数据会丢失。
  2. 名称匹配所有实例,不区分会话和用户;应先按 Id、SessionId 确认目标。
  3. 不能;-Force 不绕过 UAC/ACL。拒绝访问需要提升权限或改用正确的服务/任务控制方式。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令