• windows命令行查看和终止进程


    windows批处理系列:初步🪟命令行设置

    指令和参数

    tasklist可以获取当前运行的程序列表。当不加参数时,其返回值包括5列,分别是映像名称,PID,会话名,会话#,内存使用。taskkill用于杀死某个进程,后面必须跟参数。这两个指令的参数多有相似之处,下表中,如果未作说明,则是两个指令的共有参数,标有✅为tasklist独有的参数,标有❌则独属于taskkill。

    参数子参数说明
    /FIfilter显示一系列符合筛选器指定条件的任务。
    /Ssystem指定连接到的远程系统。
    /U[domain]user指定应该在哪个用户上下文执行这个命令。
    /P[password]提供的用户上下文指定密码。如果省略,则提示输入。
    /M[module]✅列出调用某个dll的所有exe
    /SVC✅显示进程中主持的服务。
    /V✅显示详细任务信息。
    /APPS✅显示微软商店应用及其关联的进程。
    /FOformat✅指定输出格式。有效值: “TABLE”、“LIST”、“CSV”。
    /NH✅指定列标题不应该在输出中显示。只对 “TABLE” 和 “CSV” 格式有效。
    /PIDprocessid❌指定要终止的进程的 PID
    /IMimagename❌指定要终止的进程的映像名称
    /T❌终止指定的进程和由它启用的子进程。
    /F❌指定强制终止进程。

    筛选器

    在进程查看和销毁操作中,筛选是最常用的操作。tasklist和taskkill在开启FI开关后,都支持以下筛选器

    筛选器名称运算符有效值
    STATUSeq, neRUNNING | SUSPENDED | NOT RESPONDING | UNKNOWN
    IMAGENAMEeq, ne映像名称
    PIDallPID 值
    SESSIONall会话编号
    SESSIONNAMEeq, ne会话名称
    CPUTIMEallCPU 时间,格式为hh:mm:ss,即小时:分钟:秒
    MEMUSAGEall内存使用(以 KB 为单位)
    USERNAMEeq, ne用户名,格式为 [域]用户
    SERVICESeq, ne服务名称
    WINDOWTITLEeq, ne窗口标题
    MODULESeq, neDLL 名称
    • all表示支持六种操作符:eq, ne, gt, lt, ge, le
    • 当查询远程计算机时,不支持WINDOWTITLE和STATUS筛选器。

    此外,

    • status中的suspended不支持taskkill,因为一个进程已经suspended了,就不能再kill了。
    • SESSIONNAME指令不支持taskkill
    • 只有在应用筛选器的情况下,/IM 切换才能使用通配符 ‘*’。
    • 远程进程总是要强行 (/F) 终止。

    例如下面的代码表示,列出PID不大于1000的进程。

    TASKLIST /FI "pid lt 1000"
    
    • 1

    下面两行代码分别表示列出所有edge的进程;和杀死所有edge进程。

    >tasklist /fi "imagename eq msedge.exe"
    
    映像名称         PID 会话名      会话#       内存使用
    ========== ======== ======== =========== ============
    msedge.exe    18784 Console           1    269,900 K
    ...
    >taskkill /fi "imagename eq msedge.exe" /f
    成功: 已终止 PID21324 的进程。
    成功: 已终止 PID15528 的进程。
    ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    远程指令

    /s, /u和/p均在远程操作时使用,其大致逻辑如下

    tasklist /s 192.168.1.124 /u micro /p 123456
    
    • 1

    表示列出在192.168.1.124处的用户micro的进程,且micro的密码是123456。

    tasklist参数

    taskkill独有的4个参数都比较容易理解,就不再演示了。下面对tasklit独有的一些参数做些说明。

    如果开启/SVC参数,则返回值将显示三列:映像名称,PID和服务;如果开启/V参数,则会显示9列:映像名称、PID、会话名、会话#、内存使用、状态、用户名、CPU 时间、窗口标题。

    如果开启/M参数,但不设子参数,那么将会给出某个exe所使用的所有dll。否则会列出调用某个dll的所有exe,例如

    >tasklist /m ntdll.dll
    
    映像名称             PID 模块
    =============== ======== ===================
    ipf_helper.exe                7924 ntdll.dll
    nvcontainer.exe               3808 ntdll.dll
    sihost.exe                    8200 ntdll.dll
    ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    最后,tasklist可以指定输出格式,默认就是表格table格式,比如刚刚截取的ntdll.dll的例子就是,可读性比较强;csv格式则以,为分隔符,不空格输出,比较适合另存为文件;列表格式则示意如下

    ...
    映像名称:     RuntimeBroker.exe
    PID:          12380
    会话名      : Console
    会话#   :     1
    内存使用 :    23,356 K
    
    映像名称:     Code.exe
    PID:          944
    会话名      : Console
    会话#   :     1
    内存使用 :    104,992 K
    ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
  • 相关阅读:
    基于Python web信息旅游管理系统
    阿里三面:什么是循环依赖?你说一下Spring解决循环依赖的流程
    ffmpeg录制系统声音
    21级数据结构与算法实验8——排序
    mybatis-plus3.5.3.1 支持不同数据源sql适配
    tup()是什么意思
    81《乡村振兴战略下传统村落文化旅游设计》许少辉瑞博士生辉少许——2023学生开学季许多少年辉光三农
    进程和线程
    Qt中QJsonDocument 类
    阿里前端面试问到的vue问题
  • 原文地址:https://blog.csdn.net/m0_37816922/article/details/132217901