Talvez você esteja trabalhando tranquilamente em um servidor remoto do Windows e, de repente, encontre um processo que está consumindo valiosos ciclos da CPU. O que você faz? Mate-o!
Neste tutorial, você aprenderá como encerrar um processo do Windows usando utilitários nativos, utilitários de terceiros e o PowerShell. Primeiro, você aprenderá como examinar os processos em execução no Windows e, em seguida, como encerrar os processos em execução.
Pré-requisitos
Se você quiser acompanhar as etapas deste tutorial, certifique-se de ter o seguinte:
- A Windows PC – All demos in this tutorial will use Windows 10, but Windows 7+ will work also.
- A Windows Server or another Windows desktop to use as your target for killing the remote tasks. This tutorial uses a standalone Windows Server 2016 as the remote server.
- A Sysinternals Suite da Microsoft.
- O Windows PowerShell 5 ou superior. Este tutorial usa o PowerShell v7.1.3
Consultando um Processo Remoto do Windows com o Tasklist
Desde o Windows XP, existe uma ferramenta útil chamada tasklist. O Tasklist é uma ferramenta prática que consulta os processos em computadores remotos. Antes de encerrar um processo, você primeiro precisa descobri-los!
Abra uma sessão do PowerShell ou prompt de comando em sua área de trabalho e digite o seguinte comando para exibir todos os processos em execução em seu computador remoto.
O comando abaixo consulta um computador remoto (/S
) autenticando a conexão com o nome de usuário do administrador (/U
) e a senha (/P
).
Você notará abaixo que o nome da Sessão não aparece. Como você está executando o tasklist
em um computador remoto, o tasklist
não fornece o Nome da Sessão.

Talvez você prefira listar apenas um processo. Sem problemas. Para fazer isso, especifique o parâmetro /FI
. O parâmetro /FI
aceita uma consulta que é passada para o tasklist
para filtrar processos específicos.

Consultando Processos Remotos do Windows com PSList
Outra ferramenta para visualizar processos em execução é o PSList, e esta utilidade faz parte do Conjunto de Ferramentas Sysinternals. Este conjunto de ferramentas existe há muitos anos e foi criado por Mark Russinovich, CTO da Azure!
Vamos começar a ver como você pode visualizar processos em execução em um computador remoto.
1. Abra uma sessão do PowerShell ou prompt de comando em seu desktop e altere o diretório para onde você extraiu o Conjunto de Ferramentas Sysinternals.
2. Em sua sessão do PowerShell, execute o seguinte comando para exibir os processos em execução no computador remoto e o uso de CPU associado em tempo real.
O comando abaixo executa pslist
para consultar todos os processos remotos do Windows no computador WIN-BANGJIEFNOC
autenticando o nome de usuário Administrator
(-u
) e senha (-p
).
O comando usa o interruptor -s
para transformar pslist
em modo “gerenciador de tarefas”, que atualiza repetidamente a lista.
Se for a primeira vez que você usa uma ferramenta do Sysinternals, um banner pode aparecer pedindo para você aceitar o EULA; clique em OK.
Agora você vê a seguinte saída da execução desse comando; para este artigo, você está preocupado com 3 desses valores. Como mostrado abaixo.
- Nome: O nome do processo.
- Pid: Identificador de Processo, um valor crítico usado neste tutorial, o número de PID pode ser usado para encerrar um processo remoto. É o id numérico atribuído a um processo.
- CPU: Isso mostra em tempo quase real a utilização de sua CPU disponível.
Os outros valores são relacionados à memória e estão além do escopo deste artigo.

3. Como a etapa dois usou o interruptor -s
, pressione Ctrl-C para sair do pslist
e voltar ao console.
Reduza a lista de processos retornados usando o interruptor
-e
seguido pelo nome do processo, por exemplo,-e Winlogon
.
Matar Processos Por Nome de Processo com PSKill
Agora que você sabe como encontrar processos remotos, vamos agora mergulhar em como matá-los. Para começar, vamos cobrir a utilidade pskill . Primeiro, aprenda como matar processos por nome de processo.
1. Certifique-se de ter um processo que você possa matar em seu servidor remoto. Este tutorial usará o processo do bloco de notas.
2. Abra uma sessão do PowerShell ou prompt de comando em sua área de trabalho local e altere o diretório para onde você extraiu a Suite Sysinternal e execute o seguinte comando. Você pode ver que a sintaxe para pskill
é semelhante à do pslist
.

3. Agora, execute pslist
, como explicado na seção anterior, para confirmar que o processo foi realmente interrompido.

Matar Processos Por ID de Processo com PSKill
Matar o processo pelo nome pode ser suficiente para suas necessidades se apenas uma única instância desse processo estiver em execução ou se você quiser matar todos os processos com esse nome. E se você quiser matar uma instância específica de um processo em execução? Os seguintes passos demonstrarão isso.
1. Em seu servidor remoto, abra o Bloco de Notas duas vezes; você irá matar um desses processos nesta demonstração; é claro que você pode substituir outros processos.
2. Execute o seguinte comando, observando um dos Pid‘s conforme mostrado abaixo; você precisará disso para o próximo passo.

3. Usando o PID, agora execute o pskill
, fornecendo o PID como último argumento.

4. Por fim, verifique se ainda há uma instância do Bloco de Notas em execução, executando novamente o pslist
. Agora você deverá ver apenas uma única instância do Bloco de Notas em execução.

Matando Processos Remotos do Windows com TaskKill por Nome
A ferramenta taskkill é nativa do Windows e inclui mais opções de linha de comando para reiniciar processos por nome de usuário e nome de aplicativo. Vamos começar e matar o Bloco de Notas novamente!
Matar Processo por Nome
1. No seu servidor remoto, abra o Bloco de Notas; o Bloco de Notas é o processo que você irá matar nesta demonstração; você pode, é claro, substituir por outro processo.
2. Abra uma sessão do PowerShell ou prompt de comando no seu desktop. Digitando o seguinte comando irá matar o notepad.exe
A saída é mostrada abaixo:
/IM é o parâmetro para Imagem; neste caso, é notepad.exe

3. Para confirmar que o processo está parado, execute tasklist
. Agora você não deverá ver tarefas que correspondam a esse filtro.

Matando Processos Remotos do Windows com TaskKill por PID
Matar um processo com taskkill
usando um PID não é muito diferente de usar o nome do processo. Mas, como você não pode usar o nome, primeiro precisará encontrar o PID e depois passá-lo para taskkill
.
Supondo que você tenha o Bloco de Notas em execução no seu host remoto do Windows:
1. Execute tasklist
conforme mostrado abaixo para encontrar o PID do processo Notepad. Anote um dos PIDs conforme mostrado abaixo; você precisará disso para o próximo passo.

2. Agora, execute taskkill
fornecendo o PID como último argumento.

3. Por fim, execute tasklist
para confirmar que o processo foi encerrado.

Encerrando um Processo Remoto do Windows com PowerShell
O PowerShell oferece algumas opções para encerrar processos remotos; o primeiro cmdlet Stop-Process
não pode nativamente encerrar um processo remoto, pois não possui uma opção para especificar um nome de computador. No entanto, você pode contornar esse problema executando Stop-Process
remotamente via PowerShell Remoting.
1. Se seu host e servidor remoto não estiverem em um domínio do Active Directory, primeiro forneça um nome de usuário e senha, criando um objeto PSCredential.

2. Em seguida, como o tutorial usará SSL para se conectar ao computador remoto e usará um certificado autoassinado, crie uma PSSessionOption que ignore a verificação do certificado para uma autoridade de certificação confiável.
3. Agora, conecte-se ao servidor com o comando Enter-PSSession
, que estabelece uma sessão interativa com o servidor remoto.
O comando abaixo está se conectando ao computador WIN-BANGJIEFNOC.local.net
usando o nome de usuário e a senha fornecidos acima (Credential
), ignorando a verificação da autoridade de certificação (SessionOption
) e conectando via SSL (UseSSL
).

4. Depois de se conectar ao host remoto, verifique o processo que você deseja encerrar executando Get-Process
. Neste caso, você verá o processo notepad
.

5. Para encerrar esse processo, execute Stop-Process
, como mostrado abaixo.
6. Finalmente, confirme que você encerrou o processo executando novamente Get-Process
, e você deve receber uma mensagem de erro.

Se desejar interromper um processo remoto do Windows de forma não interativa, use o
Invoke-Command
usando os seguintes parâmetros:Invoke-Command -ComputerName WIN-BANGJIEFNOC.local.net -Credential $credentials -ScriptBlock {Stop-Process -ProcessName notepad} -UseSSL
. Encapsular o comandoStop-Process
no parâmetroScriptBlock
envia o comando para o host remoto.
Conclusão
Você aprendeu sobre diferentes métodos de encerrar processos remotos e como superar situações onde regras do firewall de rede podem impedir que utilitários funcionem corretamente; este tutorial também pode ter ajudado você a corrigir problemas no Windows.
Os utilitários sobre os quais você aprendeu são ferramentas potentes; use com cuidado!
Source:
https://adamtheautomator.com/how-to-kill-a-windows-process/