Método CMD de script nativo do Windows
Abaixo está uma solução de script em lote que usa a Lista de Tarefas e FOR / F faz um loop na configuração e na análise de variáveis de acordo para obter apenas os nomes de processos dos processos em execução de um usuário específico.
Com Findstr , esses resultados são então analisados para excluir as exclusões especificadas que você definiu na variável Exclusions
acima .
Isso levará os resultados finais restantes e eliminará os nomes dos processos para esse nome de usuário específico, fornecendo os resultados desejados por meio de um script em lote, exatamente como explicado.
Script em lote
Há apenas duas variáveis para definir para que funcionem, que são Username
e Exclusions
, e o restante apenas funcionará e fará o resto do processo conforme necessário. Apenas especifique os nomes completos do processo separados por um espaço um ao lado do outro, assim como no script abaixo.
@ECHO ON
SET Username=user
SET Exclusions=explorer.exe taskmgr.exe cmd.exe
SET tmpfl=%temp%\%~n0tmp.dat
IF EXIST "%tmpfl%" DEL /F /Q "%tmpfl%"
SET Exclusions=%Exclusions% taskkill.exe
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /F "DELIMS=: TOKENS=2" %%A IN ('TASKLIST /FI "USERNAME EQ %Username%" /FO LIST ^| FIND /I "Image name:"') DO (
SET var=%%~A
SET var=!var: =!
ECHO !var! | FINDSTR /I /V "%Exclusions%">>"%tmpfl%"
)
FOR /F "USEBACKQ TOKENS=*" %%A IN ("%tmpfl%") DO (
TASKKILL /F /FI "USERNAME eq %Username%" /IM %%~A
)
GOTO EOF
Script em lote 2
@ECHO ON
CD /D "%~DP0"
SET Exclusions=cmd.exe explorer.exe taskmgr.exe
SET tmpfl=%~n0tmp.dat
IF EXIST "%tmpfl%" DEL /F /Q "%tmpfl%"
SET Exclusions=%Exclusions% taskkill.exe
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /F "DELIMS=: TOKENS=2" %%A IN ('TASKLIST /FI "USERNAME EQ %Username%" /FO LIST ^| FIND /I "Image name:"') DO (
SET var=%%~A
SET var=!var: =!
ECHO !var! | FINDSTR /I /V "%Exclusions%">>"%tmpfl%"
)
FOR /F "USEBACKQ TOKENS=*" %%A IN ("%tmpfl%") DO (
TASKKILL /F /FI "USERNAME eq %Username%" /IM %%~A
)
DEL /F /Q "%tmpfl%"
GOTO EOF