Windows tasklist命令详解 - 进程查看工具
一、基本语法
tasklist [/s <computer> [/u [<domain>\]<username> [/p <password>]]]
[/fo {TABLE | LIST | CSV}] [/nh]
[/fi <filter>] [/m [<module>] | /svc | /v]
二、常用参数说明
1. 显示格式参数
- /fo {TABLE | LIST | CSV} - 指定输出格式
TABLE - 表格形式(默认)
LIST - 列表形式
CSV - CSV格式
- /nh - 不显示列标题(只与TABLE/CSV格式一起使用)
2. 过滤参数
- /fi "filter" - 筛选要显示的进程
- 支持多个过滤器,用
and、or连接
- 例:
/fi "STATUS eq RUNNING" /fi "USERNAME ne NT AUTHORITY\SYSTEM"
3. 详细信息参数
- /m [module] - 显示进程加载的DLL模块
- 不加模块名:显示所有模块
- 加模块名:显示指定模块的进程
- /svc - 显示每个进程的服务信息
- /v - 显示详细信息
4. 远程计算机参数
- /s computer - 指定远程计算机名或IP
- /u [domain]user - 指定用户名
- /p password - 指定密码
三、常用用法示例
1. 基本查看进程
# 查看所有进程(表格形式)
tasklist
# 以列表形式查看
tasklist /fo LIST
# CSV格式输出,便于导入其他程序
tasklist /fo CSV > processes.csv
2. 筛选进程
# 按进程名筛选
tasklist /fi "IMAGENAME eq chrome.exe"
tasklist /fi "IMAGENAME eq notepad.exe"
# 按PID筛选
tasklist /fi "PID eq 1234"
# 按内存使用筛选(单位:KB)
tasklist /fi "MEMUSAGE gt 10240" # 内存 > 10MB
# 按会话名筛选
tasklist /fi "SESSIONNAME eq Console"
# 按状态筛选
tasklist /fi "STATUS eq RUNNING"
tasklist /fi "STATUS eq NOT RESPONDING"
# 按用户名筛选
tasklist /fi "USERNAME eq NT AUTHORITY\SYSTEM"
tasklist /fi "USERNAME ne NT AUTHORITY\SYSTEM"
# 多个条件组合
tasklist /fi "STATUS eq RUNNING" /fi "USERNAME ne NT AUTHORITY\SYSTEM"
3. 查看详细信息
# 显示详细信息(包含窗口标题、会话等)
tasklist /v
# 显示进程的服务信息
tasklist /svc
# 显示进程加载的DLL模块
tasklist /m
# 查找加载了特定DLL的进程
tasklist /m user32.dll
4. 远程查看进程
# 查看远程计算机进程(需要权限)
tasklist /s 192.168.1.100 /u domain\admin /p password
# 简化版(使用当前用户凭据)
tasklist /s \\SERVER01
四、过滤器常用条件
| 筛选器名 |
运算符 |
示例值 |
说明 |
|---|
| IMAGENAME |
eq, ne |
notepad.exe |
映像名称 |
| PID |
eq, ne, gt, lt, ge, le |
1234 |
进程ID |
| SESSION |
eq, ne, gt, lt, ge, le |
1 |
会话编号 |
| SESSIONNAME |
eq, ne |
Console |
会话名称 |
| STATUS |
eq, ne |
RUNNING |
状态 |
| USERNAME |
eq, ne |
NT AUTHORITY\SYSTEM |
用户名 |
| SERVICES |
eq, ne |
TermService |
服务名称 |
| WINDOWTITLE |
eq, ne |
记事本 |
窗口标题 |
| MODULES |
eq, ne |
dllname.dll |
DLL模块 |
状态值说明:
RUNNING - 正在运行
NOT RESPONDING - 未响应
UNKNOWN - 未知
五、输出列说明
标准输出列
| 列名 |
说明 |
|---|
| 映像名称 |
进程的可执行文件名称 |
| PID |
进程标识符 |
| 会话名 |
会话名称 |
| 会话# |
会话编号 |
| 内存使用 |
进程使用的内存量(KB) |
使用/v参数时的额外列
| 列名 |
说明 |
|---|
| 状态 |
进程运行状态 |
| 用户名 |
运行进程的用户账户 |
| CPU时间 |
进程使用的CPU时间 |
| 窗口标题 |
进程窗口的标题(如果有) |
使用/svc参数时的列
六、实用技巧
1. 结合findstr搜索
# 查找包含特定文字的进程
tasklist | findstr /i "chrome"
tasklist /v | findstr "Not Responding"
# 统计进程数量
tasklist | find /c "cmd.exe"
2. 保存到文件并分析
# 保存进程列表
tasklist > process_list.txt
# 按内存使用排序(借助PowerShell)
tasklist /fo CSV | ConvertFrom-Csv | Sort-Object "内存使用" -Descending
# 使用批处理排序
tasklist /fo TABLE /nh | sort
3. 定时监控进程
@echo off
:loop
cls
echo 进程监控 - %date% %time%
echo ================================
tasklist /fi "MEMUSAGE gt 10240"
timeout /t 5 /nobreak >nul
goto loop
4. 与其他命令结合
# 结束特定进程(配合taskkill)
tasklist /fi "IMAGENAME eq notepad.exe" && taskkill /im notepad.exe
# 查看系统进程树
tasklist /v | findstr /i "system"
七、常见问题
1. 权限不足
- 某些进程需要管理员权限才能查看
- 解决方案:以管理员身份运行CMD或PowerShell
2. 中文乱码
- 输出中文时可能出现乱码
- 解决方案:使用
chcp 65001切换为UTF-8编码
3. 远程连接失败
- 确保远程计算机的远程管理功能已开启
- 检查防火墙设置
- 确认凭据正确
八、与PowerShell对比
| 功能 |
tasklist |
PowerShell (Get-Process) |
|---|
| 基本查看 |
tasklist |
Get-Process |
| 按名筛选 |
tasklist /fi "IMAGENAME eq xxx" |
Get-Process -Name xxx |
| 按PID筛选 |
tasklist /fi "PID eq 1234" |
Get-Process -Id 1234 |
| 远程查看 |
tasklist /s computer |
Get-Process -ComputerName computer |
| 显示模块 |
tasklist /m |
Get-Process | Select Modules |
PowerShell示例:
Get-Process | Where-Object {$_.WorkingSet -gt 100MB}
Get-Process -Name chrome | Format-List *
九、总结
tasklist是Windows系统内置的强大进程管理工具,具有以下特点:
- 无需安装:所有Windows系统自带
- 功能全面:支持筛选、远程查看、详细信息等
- 脚本友好:输出格式多样,便于与其他命令结合
在实际使用中,可以根据需求选择合适的参数组合,实现高效的进程监控和管理。