Matar instância específica de processo no Windows

3

Não consegui encontrar ajuda para essa pergunta específica e me pergunto se ela tem uma solução. Eu tenho várias instâncias de um programa em execução no Windows 7. Como posso matar uma janela específica (talvez com base no nome do arquivo que está aberto)?

Antecedentes: Eu tenho um aplicativo cliente para um software ETL (SAS EG) na minha área de trabalho e, rotineiramente, algo dá errado e uma sessão congela. Mas tenho muitas sessões abertas ao mesmo tempo, ou seja, várias instâncias do programa em execução na minha área de trabalho, cada uma tendo sua própria sessão no servidor remoto. Quero matar apenas o que congelou e continuar trabalhando com as outras instâncias. Sei que é possível, posso matar uma única instância do Gerenciador de Tarefas, mas é uma roleta russa, pois os processos não podem ser distinguidos um do outro no Gerenciador de Tarefas. Muito obrigado por qualquer ajuda.

Probel
fonte
Existe alguma diferença entre as instâncias, como opções de linha de comando ou caminho do aplicativo, etc? Você pode matar o processo com a identificação do processo associado, por exemploTASKKILL /PID 1230 /PID 1241 /PID 1253 /T
Biswapriyo
1
Se você usar o Process Explorer da SysInternals, poderá ver todos os arquivos abertos para um processo e / ou encontrar todos os processos que têm um arquivo aberto (pode ser usada correspondência parcial).
AFH
O Windows tem títulos diferentes?
DavidPostill
@AFH obrigado, parece bom. mas, infelizmente, minha organização não nos concede direitos de administrador local; portanto, talvez não seja possível usá-lo.
Probel
1
Além disso, TASKLIST /Vmostra o título da janela.
Pimp Juice IT

Respostas:

3

Como posso matar uma janela específica (talvez com base no nome do arquivo que está aberto)?

as janelas têm títulos diferentes de acordo com o nome do arquivo que está aberto (neste caso, o nome do projeto).

Você pode usar o taskkill para matar processos que possuem janelas com um título especificado.

Exemplo

Dada a seguinte janela:

insira a descrição da imagem aqui

O comando para eliminar a instância do bloco de notas que está editando um arquivo chamado test.txt é:

taskkill /f /fi "windowtitle eq test.txt*"

Resultado:

>taskkill /f /fi "windowtitle eq test.txt*"
SUCCESS: The process with PID 5356 has been terminated.

Notas:

  • Substitua test.txt*por uma sequência que identifique exclusivamente a janela do seu aplicativo.

Leitura adicional

DavidPostill
fonte