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 |
None 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.
See Also