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