Talvez você esteja trabalhando feliz em um servidor remoto com Windows e, de repente, perceba que um processo está se comportando de maneira incorreta, consumindo preciosos ciclos de CPU. O que você faz? Mate-o!
Neste tutorial, você aprenderá como encerrar um processo no 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 esses processos.
Pré-requisitos
Se você quiser acompanhar os passos deste tutorial, certifique-se de ter os seguintes itens antecipadamente:
- 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.
- Windows PowerShell 5 ou superior. Este tutorial utiliza o PowerShell v7.1.3
Consultando Processos Remotos no Windows com o Tasklist
Desde o Windows XP, existe uma ferramenta útil chamada tasklist. O Tasklist é uma ferramenta útil para consultar processos em computadores remotos. Antes de encerrar um processo, você deve primeiro identificá-lo!
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 no 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 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 único 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 Sysinternals Suite. Este conjunto de ferramentas existe há muitos anos e foi criado por Mark Russinovich, CTO da Azure!
Vamos começar com como você pode visualizar processos em execução em um computador remoto.
1. Abra uma sessão do PowerShell ou prompt de comando em sua área de trabalho e altere o diretório para onde você extraiu o Sysinternal Suite.
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 o 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 a opção -s
para transformar o pslist
no 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 aceitar a 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 do processo, um valor crítico usado neste tutorial, o número do 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 da CPU disponível.
Os outros valores estão relacionados à memória e estão além do escopo deste artigo.

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

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

Matar Processos Pelo ID do Processo com o PSKill
Encerrar o processo pelo nome pode ser suficiente para suas necessidades se apenas uma instância desse processo estiver em execução ou se você deseja encerrar todos os processos com esse nome. E se você precisar encerrar uma instância específica de um processo em execução? Os passos a seguir demonstrarão isso.
1. Em seu servidor remoto, abra o Bloco de Notas duas vezes; você encerrará um desses processos nesta demonstração; é claro, você pode substituir outros processos, se desejar.
2. Execute o seguinte comando, observando um dos Pid conforme mostrado abaixo; você precisará disso para a próxima etapa.

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

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

Encerrando Processos Remotos do Windows com TaskKill por Nome
O utilitário taskkill é nativo do Windows e inclui mais opções de linha de comando para reiniciar processos por nome de usuário e nome do aplicativo. Vamos começar e encerrar o Bloco de Notas novamente!
Encerrar Processo por Nome
1. No seu servidor remoto, abra o Bloco de Notas; o Bloco de Notas é o processo que você vai encerrar 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, você encerrará o notepad.exe
O resultado é mostrado abaixo:
/IM é o parâmetro para Imagem; neste caso, é notepad.exe

3. Para confirmar que o processo foi interrompido, execute tasklist
. Agora você não deve ver nenhuma tarefa correspondente a esse filtro.

Encerrando Processos Remotos do Windows com TaskKill por PID
Encerrar 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 Windows remoto:
1. Execute tasklist
conforme mostrado abaixo para encontrar o PID do processo Notepad. Anote um dos PID’s conforme mostrado abaixo; você precisará disso para a próxima etapa.

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

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

Encerrando um Processo Remoto do Windows com o 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 tem uma opção para especificar um nome de computador. No entanto, você pode contornar esse problema executando o Stop-Process
remotamente via PowerShell Remoting.
1. Se o seu host e o 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 irá ignorar 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 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 deseja encerrar executando Get-Process
. Neste caso, você verá o processo notepad
.

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

Se você deseja interromper um processo do Windows remoto de forma não interativa, use o comando
Invoke-Command
usando os seguintes parâmetros:Invoke-Command -ComputerName WIN-BANGJIEFNOC.local.net -Credential $credentials -ScriptBlock {Stop-Process -ProcessName notepad} -UseSSL
. Ao encapsular o comandoStop-Process
no parâmetroScriptBlock
, você envia o comando para o host remoto.
Conclusão
Você aprendeu sobre diferentes métodos de encerrar processos remotos e como superar situações em que regras de 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 que você aprendeu são ferramentas potentes; use com cuidado!
Source:
https://adamtheautomator.com/how-to-kill-a-windows-process/