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 останавливает один или несколько запущенных процессов. Вы можете указать процесс по имени процесса или идентификатору процесса (PID) или передать объект процесса в Stop-Process. Stop-Process работает только с процессами, запущенными на локальном компьютере.
В Windows Vista и более поздних версиях операционной системы Windows, чтобы остановить процесс, владельцем которого не является текущий пользователь, необходимо запустить PowerShell, используя параметр «Запуск от имени администратора». Кроме того, вам не будет предложено подтверждение, если вы не укажете параметр Confirm.
Примеры
Пример 1: Остановить все экземпляры процесса
PS C:\> Stop-Process -Name "notepad"Эта команда останавливает все экземпляры процесса «Блокнот» на компьютере. Каждый экземпляр Блокнота работает в своем собственном процессе. Он использует параметр Name для указания процессов, каждый из которых имеет одно и то же имя. Если бы вы использовали параметр 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Эта команда останавливает конкретный экземпляр процесса «Блокнот». Для идентификации процесса он использует идентификатор процесса 3952. Параметр Confirm предписывает 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 равно $. Истинный. 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
[ADMIN]: PS>Эти команды демонстрируют эффект использования Force для остановки процесса, не принадлежащего пользователю.
Первая команда использует Get-Process для получения процесса Lsass. Оператор конвейера отправляет процесс в Stop-Process, чтобы остановить его. Как показано в примере выходных данных, первая команда завершается с ошибкой с сообщением об отказе в доступе, поскольку этот процесс может остановить только член группы администраторов на компьютере.
Когда PowerShell открывается с помощью параметра «Запуск от имени администратора» и команда повторяется, PowerShell запрашивает подтверждение.
Вторая команда указывает Force для подавления запроса. В результате процесс останавливается без подтверждения.
Параметры
-Confirm
Запрашивает подтверждение перед запуском командлета.
- Тип :
SwitchParameter
- Псевдонимы:
cf
- Позиция:
Именованный
- Значение по умолчанию:
False
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-Force
Останавливает указанные процессы без запроса подтверждения. По умолчанию Stop-Process запрашивает подтверждение перед остановкой любого процесса, не принадлежащего текущему пользователю.
Чтобы найти владельца процесса, используйте командлет Get-CimInstance, чтобы получить объект Win32_Process, представляющий процесс, а затем используйте GetOwner. метод объекта.
- Тип :
SwitchParameter
- Позиция:
Именованный
- Значение по умолчанию:
None
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-Id
Указывает идентификаторы процессов, которые необходимо остановить. Чтобы указать несколько идентификаторов, разделяйте их запятыми. Чтобы узнать PID процесса, введите Get-Process.
- Тип :
Int32[]
- Позиция:
0
- Значение по умолчанию:
None
- Необходимый:
True
- Примите ввод конвейера:
True
- Принимайте подстановочные знаки:
False
-InputObject
Указывает объекты процесса, которые необходимо остановить. Введите переменную, содержащую объекты, или введите команду или выражение, позволяющее получить объекты.
- Тип :
Процесс[]
- Позиция:
0
- Значение по умолчанию:
None
- Необходимый:
True
- Примите ввод конвейера:
True
- Принимайте подстановочные знаки:
False
-Name
Указывает имена процессов, которые необходимо остановить. Вы можете ввести несколько имен процессов, разделенных запятыми, или использовать подстановочные знаки.
- Тип :
String[]
- Псевдонимы:
ProcessName
- Позиция:
Именованный
- Значение по умолчанию:
None
- Необходимый:
True
- Примите ввод конвейера:
True
- Принимайте подстановочные знаки:
True
-PassThru
Возвращает объект, представляющий процесс. По умолчанию этот командлет не генерирует никаких выходных данных.
- Тип :
SwitchParameter
- Позиция:
Именованный
- Значение по умолчанию:
None
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-WhatIf
Показывает, что произойдет, если командлет запустится. Командлет не запускается.
- Тип :
SwitchParameter
- Псевдонимы:
wi
- Позиция:
Именованный
- Значение по умолчанию:
False
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
Входы
Процесс
Вы можете передать объект процесса этому командлету.
Выходы
Нет
По умолчанию этот командлет не возвращает никаких результатов.
Процесс
При использовании параметра PassThru этот командлет возвращает объект Process, представляющий остановленный процесс.
Примечания
PowerShell включает следующие псевдонимы для Stop-Process:
Все платформы:
spps
Windows:
killВы также можете использовать свойства и методы объекта инструментария управления Windows (WMI) Win32_Process в Windows PowerShell. Дополнительные сведения см. в разделе Get-CimInstance и WMI SDK.
- При остановке процессов помните, что остановка процесса может остановить процесс и службы, которые зависят от этого процесса. В крайнем случае остановка процесса может привести к остановке Windows.