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




Sumário