Поделиться через


Stop-Process

Останавливает один или несколько выполняемых процессов.

Синтаксис

Id (по умолчанию)

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

Name

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

InputObject

Stop-Process
    [-InputObject] <Process[]>
    [-PassThru]
    [-Force]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Описание

Командлет Stop-Process останавливает один или несколько выполняемых процессов. Можно указать процесс по имени процесса или идентификатору процесса (PID) или передать объект процесса в Stop-Process. Stop-Process работает только на процессах, выполняемых на локальном компьютере.

В Windows Vista и более поздних версиях операционной системы Windows, чтобы остановить процесс, который не принадлежит текущему пользователю, необходимо запустить PowerShell с помощью параметра запуска от имени администратора. Кроме того, запрос на подтверждение не запрашивается, если не указан параметр Confirm.

Примеры

Пример 1. Остановка всех экземпляров процесса

Stop-Process -Name "notepad"

Эта команда останавливает все экземпляры процесса Блокнота на компьютере. Каждый экземпляр Блокнота выполняется в собственном процессе. В нем используется параметр имени , чтобы указать процессы, все из которых имеют одно и то же имя. Если бы вы использовали параметр id для остановки одних и тех же процессов, вам придется перечислить идентификаторы процессов каждого экземпляра Блокнота.

Пример 2. Остановка конкретного экземпляра процесса

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

Эта команда останавливает конкретный экземпляр процесса Блокнота. Он использует идентификатор процесса 3952 для идентификации процесса. Параметр "Подтвердить" направляет PowerShell на запрос, прежде чем остановить процесс. Так как запрос содержит имя процесса в дополнение к идентификатору, рекомендуется. Параметр 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 командлету, который выбирает те, где значение свойства HasExited $true. HasExited — это только одно свойство объектов процесса. Чтобы найти все свойства, введите Get-Process | Get-Member.

Пример 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

Эти команды показывают эффект использования Force для остановки процесса, который не принадлежит пользователю.

Первая команда использует Get-Process для получения процесса Lsass. Оператор конвейера отправляет процесс Stop-Process, чтобы остановить его. Как показано в примере выходных данных, первая команда завершается ошибкой с сообщением "Отказано в доступе", так как этот процесс может быть остановлен только членом группы администраторов на компьютере.

Когда PowerShell открывается с помощью параметра "Запуск от имени администратора", и команда повторяется, PowerShell запрашивает подтверждение.

Вторая команда указывает Принудительное для подавления запроса. В результате процесс останавливается без подтверждения.

Параметры

-Confirm

Запрашивает подтверждение перед запуском cmdlet.

Свойства параметра

Тип:SwitchParameter
Default value:False
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:cf

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Force

Останавливает указанные процессы без запроса на подтверждение. По умолчанию Stop-Process запрашивает подтверждение перед остановкой любого процесса, который не принадлежит текущему пользователю.

Чтобы найти владельца процесса, используйте командлет Get-CimInstance для получения объекта Win32_Process, представляющего процесс, а затем используйте метод GetOwner объекта.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Id

Задает идентификаторы процессов, которые необходимо остановить. Чтобы указать несколько идентификаторов, используйте запятые для разделения идентификаторов. Чтобы найти ИДЕНТИФИКАТОР процесса, введите Get-Process.

Свойства параметра

Тип:

Int32[]

Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

Id
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-InputObject

Указывает объекты процесса, которые нужно остановить. Введите переменную, содержащую объекты, или введите команду или выражение, которое получает объекты.

Свойства параметра

Тип:

Process[]

Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

InputObject
Position:0
Обязательно:True
Значение из конвейера:True
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Name

Задает имена процессов, которые необходимо остановить. Можно ввести несколько имен процессов, разделенных запятыми или использовать подстановочные знаки.

Свойства параметра

Тип:

String[]

Default value:None
Поддерживаются подстановочные знаки:True
DontShow:False
Aliases:Имя процесса

Наборы параметров

Name
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-PassThru

Возвращает объект, представляющий процесс. По умолчанию этот командлет не создает выходные данные.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-WhatIf

Показывает, что произойдет, если командлет будет запущен. Командлет не запускается.

Свойства параметра

Тип:SwitchParameter
Default value:False
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:wi

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

CommonParameters

Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.

Входные данные

Process

Объект процесса можно передать в этот командлет.

Выходные данные

None

По умолчанию этот командлет не возвращает выходные данные.

Process

При использовании параметра PassThru этот командлет возвращает объект Process, представляющий остановленный процесс.

Примечания

PowerShell включает следующие псевдонимы для Stop-Process:

  • Все платформы:
    • spps
  • Виндоус:
    • kill

Свойства и методы инструментария управления Windows (WMI Win32_Process) можно также использовать в Windows PowerShell. Дополнительные сведения см. в Get-CimInstance и пакете SDK WMI.

  • При остановке процессов осознайте, что остановка процесса может остановить процесс и службы, зависящие от процесса. В крайнем случае остановка процесса может остановить Windows.