Stop-Process
Para um ou mais processos em execução.
Sintaxe
Stop-Process [-Id] <Int32[]> [-Force] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]
Stop-Process -InputObject <Process[]> [-Force] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]
Stop-Process -Name <string[]> [-Force] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]
Descrição
O cmdlet Stop-Process para um ou mais processos em execução. Você pode especificar um processo por nome ou ID de processo (PID) ou transmitir um objeto de processo para Stop-Process. Stop-Process só funciona em processos executados no computador local.
No Windows Vista e em versões mais recentes do Windows, para parar um processo que não pertence ao usuário atual, é necessário iniciar o Windows PowerShell com a opção "Executar como administrador". Além disso, você é solicitado a confirmar a menos que use o parâmetro Force.
Parâmetros
-Force
Para os processos especificados sem solicitar confirmação. Por padrão, Stop-Process solicita confirmação antes de parar qualquer processo que não pertence ao usuário atual.
Para localizar o proprietário de um processo, use o cmdlet Get-WmiMethod para obter um objeto Win32_Process que representa o processo e use o método GetOwner do objeto.
Necessário? |
false |
Posição? |
named |
Valor padrão |
False |
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-Id <Int32[]>
Especifica os IDs de processo dos processos a serem parados. Para especificar várias IDs, use vírgulas para separar os identificadores. Para localizar a PID de um processo, digite "Get-Process". O nome do parâmetro ("Id") é opcional.
Necessário? |
true |
Posição? |
1 |
Valor padrão |
|
Aceitar entrada do pipeline? |
true (ByPropertyName) |
Aceitar caracteres curinga? |
false |
-InputObject <Process[]>
Para os processos representados pelos objetos de processo especificados. Insira uma variável que contenha os objetos ou digite um comando ou uma expressão que obtenha os objetos.
Necessário? |
true |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
true (ByValue) |
Aceitar caracteres curinga? |
false |
-Name <string[]>
Especifica os nomes de processo dos processos a serem parados. Você pode digitar vários nomes de processo (separados por vírgulas) ou usar caracteres curinga.
Necessário? |
true |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
true (ByPropertyName) |
Aceitar caracteres curinga? |
false |
-PassThru
Retorna um objeto que representa o processo. Por padrão, este cmdlet não gera nenhuma saída.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-Confirm
Solicita confirmação antes da execução do comando.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-WhatIf
Descreve o que aconteceria se você executasse o comando, sem executá-lo de fato.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
<CommonParameters>
Esse cmdlet oferece suporte aos parâmetros comuns: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Para obter mais informações, consulte about_Commonparameters.
Entradas e saídas
O tipo de entrada é o tipo dos objetos que você pode canalizar para o cmdlet. O tipo de retorno é o tipo dos objetos que o cmdlet retorna.
Entradas |
System.Diagnostics.Process Você pode enviar um objeto de processo para Stop-Process. |
Saídas |
Nenhum ou System.Diagnostics.Process Quando você usa o parâmetro PassThru, Stop-Process retorna um objeto System.Diagnostics.Process que representa o processo parado. Caso contrário, esse cmdlet não gera nenhuma saída. |
Observações
Você também pode fazer referência a Stop-Process usando seu aliases internos, "kill" e "spps". Para obter mais informações, consulte about_Aliases.
Você também pode usar as propriedades e métodos do objeto WMI Win32_Process no Windows PowerShell. Para obter mais informações, consulte Get-WmiObject e WMI SDK.
Ao parar processos, a ação de parar um processo pode interromper processos e serviços que dependem do processo. Em um caso extremo, parar um processo poderá parar o Windows.
Exemplo 1
C:\PS>stop-process -name notepad
Descrição
-----------
Esse comando para todas as instâncias do processo notepad.exe (do Bloco de notas) no computador. (Cada instância do Bloco de Notas é executada em seu próprio processo.) Ele usa o parâmetro Name para especificar os processos, que têm o mesmo nome. Se você fosse usar o parâmetro ID para parar o mesmo processo, deveria listar as IDs dos processos de cada instância do Bloco de Notas.
Exemplo 2
C:\PS>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
Descrição
-----------
Esse comando para uma instância em particular do processo do Bloco de notas. Ele utiliza a ID de processo 3952 para identificar o processo. O parâmetro Confirm faz com que o Windows PowerShell avise o usuário antes de parar o processo. Como o aviso inclui o nome do processo, assim como o seu ID, essa é a melhor maneira de fazer isso. O parâmetro PassThru transmite o objeto de processo para o formatador para exibição. Sem esse parâmetro, nada seria exibido após um comando Stop-Process.
Exemplo 3
C:\PS>calc
c:\PS>$p = get-process calc
c:\PS>stop-process -inputobject $p
c:\PS>get-process | where-object {$_.HasExited}
Descrição
-----------
Essa série de comandos inicia e para o processo Calc e então detecta os processos que foram parados.
O primeiro comando ("calc") inicia uma instância da calculadora. O segundo comando ("$p = get-process calc") usa o cmdlet Get-Process para obter um objeto que representa o processo Calc e o armazena na variável $p. O terceiro comando ("stop-process -inputobject $p") utiliza o cmdlet Stop-Process para parar o processo Calc. Ele utiliza o parâmetro InputObject para transmitir o objeto para Stop-Process.
O último comando obtém todos os processos do computador que estavam em execução mas que agora estão parados. Ele usa o cmdlet Get-Process para obter todos os processos no computador. O operador de pipeline (|) transmite os resultados para o cmdlet Where-Object, que seleciona aqueles em que o valor da propriedade HasExited é TRUE. HasExited é uma das muitas propriedades dos objetos de processo. Para localizar todas as propriedades, digite "get-process | get-member".
Exemplo 4
C:\PS>get-process 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 lsass | stop-process <<<<
[ADMIN]: C:\PS> get-process 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]: C:\PS> get-process lsass | stop-process -force
[ADMIN]: C:\PS>
Descrição
-----------
Estes comandos mostram o efeito de usar o parâmetro Force para parar um processo que não pertence ao usuário.
O primeiro comando usa o cmdlet Get-Process para obter o processo Lsass. Um operador de pipeline envia o processo para o cmdlet Stop-Process pará-lo. Como mostrado na saída de exemplo, o primeiro comando falha com uma mensagem "Acesso negado", porque esse processo pode ser parado apenas por um membro do grupo Administradores no computador.
Quando o Windows PowerShell é aberto com a opção “Executar como administrador” e o comando é repetido, o Windows PowerShell solicita confirmação.
O segundo comando usa o parâmetro Force para suprimir o prompt. Como resultado, o processo é parado sem confirmação.
Consulte também
Conceitos
Get-Process
Start-Process
Stop-Process
Wait-Process
Debug-Process