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

[玩转系统] Stop-Process (Microsoft.PowerShell.Management)

作者:精品下载站 日期:2024-12-14 02:10:06 浏览:13 分类:玩电脑

Stop-Process (Microsoft.PowerShell.Management)


Stop-Process

模块 :Microsoft.PowerShell.Management

停止一个或多个正在运行的进程。

句法

Stop-Process
    [-Id] <Int32[]>
    [-PassThru]
    [-Force]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]
Stop-Process
    -Name <String[]>
    [-PassThru]
    [-Force]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]
Stop-Process
    [-InputObject] <Process[]>
    [-PassThru]
    [-Force]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

描述

Stop-Process cmdlet 停止一个或多个正在运行的进程。您可以通过进程名称或进程 ID (PID) 指定进程,或将进程对象传递给 Stop-ProcessStop-Process 仅适用于本地计算机上运行的进程。

在 Windows Vista 和更高版本的 Windows 操作系统上,要停止不属于当前用户的进程,必须使用“以管理员身份运行”选项启动 PowerShell。此外,除非您指定Confirm 参数,否则系统不会提示您进行确认。

示例

示例 1:停止进程的所有实例

PS C:\> Stop-Process -Name "notepad"

此命令停止计算机上记事本进程的所有实例。记事本的每个实例都在其自己的进程中运行。它使用 Name 参数来指定进程,所有进程都具有相同的名称。如果您要使用 Id 参数来停止相同的进程,则必须列出每个记事本实例的进程 ID。

示例 2:停止进程的特定实例

PS C:\> Stop-Process -Id 3952 -Confirm -PassThru

Confirm
Are you sure you want to perform this action?
Performing operation "Stop-Process" on Target "notepad (3952)".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help
(default is "Y"):y
Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
41       2      996       3212    31            3952 notepad

此命令停止记事本进程的特定实例。它使用进程 ID 3952 来标识该进程。 Confirm 参数指示 PowerShell 在停止进程之前提示您。由于提示除了 ID 之外还包含进程名称,因此这是最佳实践。 PassThru 参数将进程对象传递给格式化程序进行显示。如果没有此参数,Stop-Process 命令后将不会有任何显示。

示例 3:停止进程并检测它已停止

calc
$p = Get-Process -Name "calc"
Stop-Process -InputObject $p
Get-Process | Where-Object {$_.HasExited}

这一系列命令启动和停止 Calc 进程,然后检测已停止的进程。

第一个命令启动计算器的实例。

第二个命令使用 Get-Process 获取表示 Calc 进程的对象,然后将其存储在 $p 变量中。

第三条命令停止 Calc 进程。它使用 InputObject 参数将对象传递给 Stop-Process

最后一个命令获取计算机上正在运行但现已停止的所有进程。它使用Get-Process来获取计算机上的所有进程。管道运算符 (|) 将结果传递给 Where-Object cmdlet,后者选择 HasExited 属性值为 $的结果真的。 HasExited 只是流程对象的一个属性。要查找所有属性,请键入 Get-Process |获取会员。

示例 4:停止不属于当前用户的进程

PS> Get-Process -Name "lsass" | Stop-Process

Stop-Process : Cannot stop process 'lsass (596)' because of the following error: Access is denied
At line:1 char:34
+ Get-Process -Name "lsass" | Stop-Process <<<<

[ADMIN]: PS> Get-Process -Name "lsass" | Stop-Process

Warning!
Are you sure you want to perform this action?
Performing operation 'Stop-Process' on Target 'lsass(596)'
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"):

[ADMIN]: PS> Get-Process -Name "lsass" | Stop-Process -Force
[ADMIN]: PS>

这些命令显示了使用强制停止不属于用户的进程的效果。

第一个命令使用 Get-Process 来获取 Lsass 进程。管道操作员将进程发送到 Stop-Process 以停止它。如示例输出所示,第一个命令失败并显示拒绝访问消息,因为此进程只能由计算机上管理员组的成员停止。

使用“以管理员身份运行”选项打开 PowerShell 并重复该命令时,PowerShell 会提示您确认。

第二个命令指定强制来抑制提示。结果,该过程在未经确认的情况下停止。

参数

-Confirm

在运行 cmdlet 之前提示您进行确认。

类型 :

SwitchParameter

别名:

cf

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-Force

停止指定的进程而不提示确认。默认情况下,Stop-Process 会在停止不属于当前用户的任何进程之前提示您进行确认。

要查找进程的所有者,请使用 Get-CimInstance cmdlet 获取表示该进程的 Win32_Process 对象,然后使用 GetOwner对象的方法。

类型 :

SwitchParameter

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Id

指定要停止的进程的进程 ID。要指定多个 ID,请使用逗号分隔 ID。要查找进程的 PID,请输入 Get-Process

类型 :

Int32[]

位置:

0

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

False

-InputObject

指定要停止的进程对象。输入包含对象的变量,或键入获取对象的命令或表达式。

类型 :

过程[]

位置:

0

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

False

-Name

指定要停止的进程的进程名称。您可以键入多个进程名称,以逗号分隔,或使用通配符。

类型 :

String[]

别名:

ProcessName

位置:

命名

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

True

-PassThru

返回一个代表进程的对象。默认情况下,此 cmdlet 不生成任何输出。

类型 :

SwitchParameter

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-WhatIf

显示 cmdlet 运行时会发生什么情况。该 cmdlet 未运行。

类型 :

SwitchParameter

别名:

wi

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

输入

流程

您可以通过管道将进程对象传递给此 cmdlet。

输出

默认情况下,此 cmdlet 不返回任何输出。

流程

当您使用 PassThru 参数时,此 cmdlet 将返回一个表示已停止进程的 Process 对象。

笔记

PowerShell 包含以下 Stop-Process 别名:

  • 所有平台:

      spps
  • Windows:

      kill
    • 您还可以在 Windows PowerShell 中使用 Windows Management Instrumentation (WMI) Win32_Process 对象的属性和方法。有关详细信息,请参阅 Get-CimInstance 和 WMI SDK。

      • 停止进程时,要意识到停止进程可以停止进程以及依赖于该进程的服务。在极端情况下,停止进程可能会导致 Windows 停止运行。

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

      取消回复欢迎 发表评论:

      关灯