使用批处理脚本终止所有不必要的进程吗?

时间:2019-05-28 20:29:17

标签: windows batch-file process

为安全起见,我想采用一种方法来强制终止Windows操作系统运行不需要的所有进程。我还想确保没有新的进程开始,并打印所有终止的进程,以便我知道在哪里查找。 这样一来,以防万一我意外下载恶意软件并且该恶意软件仍处于起步阶段,我可以还原可能的损害并更轻松地删除源。 我不知道该如何解决这个问题,因此我对自己的问题寻求帮助。预先谢谢您:)

PS:如果有一种方法可以为批处理脚本提供退出按钮,那将是不错的选择,但不是必须的! :)

1 个答案:

答案 0 :(得分:0)

您可以结合使用tasklisttaskkill来做到这一点。

列出安全程序列表,并与当前正在运行的每个任务进行交叉检查,如果不在列表中,则将其杀死。

@echo off
setlocal enabledelayedexpansion

set safeArray="system idle process" "system" "registry" "svchost.exe" & rem etc

for /f "tokens=1,2 delims=," %%i in ('tasklist /fo csv /nh') do (
    set tmp=0
    for /f %%k in ('echo %safeArray% ^| find /i /c "%%~i"') do set /a tmp+=%%k
    if !tmp! lss 1 echo I want to taskkill - %%~i  PID: %%~j
)

pause

由于您将要首先设置安全阵列,因此我现在没有实际执行脚本清除操作。
echo I want to taskkill…行替换为taskkill /pid %%~j