- PsList 列出进程 Windows 包含本地或远程 CPU、内存、线程和层次结构的详细信息。
- 关键参数:-t(树)、-m(内存)、-x(全视图)、-s/-r(采样)、按名称/PID 过滤。
- 与 PsKill 和 PsExec 集成以采取行动:远程定位、终止和重新启动进程。

如果您管理 Windows 系统并希望快速可靠地了解流程的运行情况, PsList 是可以帮助您摆脱困境的实用程序之一。。它是 Sysinternals 的 PsTools 包的一部分,并且带有少量 comandos,允许详细检查 CPU、内存、线程和进程层次结构, 本地和远程.
除了列出流程之外,当你想查看 进程树,每隔一段时间刷新一次数据,就像一个迷你 任务经理 在控制台中,或者按名称或 PID 进行过滤。当你将它与 PsKill 和 PsExec,您现在可以从观察转向行动:找到有问题的进程,安全地终止它,并在几秒钟内重新启动它,即使在授权的远程计算机上也是如此。
PsList 是什么以及它能显示什么?
PsList 是 Sysinternals 的一个命令行实用程序,旨在 列出进程及其关键遥测。通过一个简单的命令,您可以获得优先级、线程数和标识符等列, 虚拟内存 和工作集,加上每个进程的累积 CPU 和执行时间。
该工具可以针对本地系统或 可访问的远程设备在后一种情况下,如果您当前的权限不足以读取对方系统上的性能计数器,则允许使用显式凭据。因此,使用 PsList 可以同时满足这两种情况 交互式诊断 通过脚本实现自动化。
pslist
pslist exp
pslist -t
pslist \\EQUIPO-REMOTO -u DOMINIO\Usuario -p Contraseña
PsList 也有具体的观点:你可以问 线程详细信息 按流程,重点关注消耗 记忆 或激活包含所有内容的合并视图。当您需要一张完整的照片时,正确的开关可以帮您节省步骤和 清除图片.

安装、支持的版本以及内部工作原理
PsList 是 PSTOOLS,一组来自 Sysinternals 的控制台实用程序。它不需要任何复杂的安装:只需将可执行文件复制到 PATH 中的文件夹或通过其路径调用即可。该软件包轻量级且 非常适合管理员 谁更喜欢工具 手提.
兼容性:在现代环境中,PsList 可在 Windows 8.1 及更高版本的客户端和 Windows Server 2012 及更高版本 在服务器上。这些版本保证了收集该工具公开的信息所需的支持和 API。
它从哪里获取数据?PsList 使用 性能计数器 Windows(与 PerfMon 相同的操作系统)。因此,这些信息与您在 性能监控器 系统本身。这种集成也解释了为什么在远程场景中,您可能需要使用 有特权 适当的。
实用说明:PsList 显示的所有内存值都出现在 千字节(KB)如果您正在与以 MB 为单位报告的其他工具进行比较,请记住这一点,以免混淆数量级。

语法和基本参数
基本语法灵活,涵盖简单和高级情况。这些是 关键参数 应该掌握以下知识才能充分利用它:
| 参数 | 有什么作用 |
|---|---|
pslist exp |
过滤和 显示名称以“exp”开头的进程 (例如,Explorer)。 |
-d |
样本 线程详细信息 的过程。 |
-m |
专注于输出 内存统计. |
-x |
结合视图 进程、内存和线程. |
-t |
显示 进程树 (等级制度)。 |
-s [n] |
以类型模式运行 任务经理 持续 n 秒(按 Esc 键取消)。 |
-r n |
设置 刷新率 以前模式下的秒数(默认 1)。 |
\\equipo |
它不是从本地系统获取信息,而是从 远程团队 指示(NT/Win2K+;当今的现代 Windows)。 |
-u |
允许您指定一个 用户 登录到远程。 |
-p |
表示 密码 在命令行上。如果省略 -p 输入您的帐户后,PsList 将以交互方式询问您。 |
nombre |
过滤并显示以下进程 以该名称开头. |
-e |
强迫 完全匹配 来自进程名称。 |
pid |
限制输出到该进程 电位诱导衰减 具体(例如, pslist 53). |
有了这个基础,您可以涵盖从按名称快速过滤到 PID 特定审计如果你想要的是丰富的全球视野,那就激活 -x 您将一次性获得有关进程、内存和线程的数据。
pslist -x
pslist -m chrome
pslist -t -e explorer.exe
pslist 1234
对于远程场景,请记住域路径和用户是使用典型的 Windows 语法编写的: \\COMPUTER 或 DOMAIN\User. 根据您组织的拓扑结构进行调整。

读取输出:缩写和字段
PsList 输出使用标准缩写来压缩信息。这些是 您应该知道的键 解释列和指标:
| 柱子 | 含义 |
|---|---|
| 小学 | 优先 计划器中的过程。 |
| d | 数量 线程 正在进行中。 |
| 亨德 | 计数 手柄 打开。 |
| VM | 虚拟记忆体 分配。 |
| WS | 工作集 (工作集)在物理内存中。 |
| 私法 | 私有虚拟内存 的过程。 |
| 私人公园 | 微微 已达到私有虚拟内存。 |
| 故障 | 数量 页面错误 (页面错误)。 |
| 非P | 尺寸 非分页池 相关。 |
| 页 | 尺寸 分页池. |
| 切换 | 上下文变化 经历过。 |
您还将看到来自 CPU时间 y 经过时间,有助于了解进程消耗了多少 CPU 时间以及运行了多长时间。这些字段对于追踪以下进程至关重要: 他们悬而未决 或者消耗了比必要更多的资源。
任务管理器类型模式和连续刷新
如果您想在一段时间内监视一个或多个进程而不必按任何按钮, 使用采样模式 来自 PsList 的 -s。此模式刷新输出并保持活动状态 El Temppo 指定(或直到按下 Esc 键)。使用 -r 您可以定义每多少秒更新一次。
pslist -s 15 -r 2
上述示例运行 PsList 15秒 用 两秒刷新它对于捕获您可能无法在一次运行中捕获的短暂 CPU 或内存峰值非常方便。
与远程团队合作:凭证和安全
PsList 的优势之一是它能够 远程机器上的查询进程 您拥有连接和权限。语法很简单:在计算机名称或 IP 地址前加上 \\ 必要时,还需注明凭证。
pslist \\MAQUINA -u DOMINIO\Administrador -p
如果您指定 用户 但你忽略了这个选项 -p,PsList 将要求您提供 交互式密码。这在手写输入时很方便,并且可以防止密码存储在控制台历史记录中。要在 脚本,建议将其作为参数传递或使用 安全机制 凭证注入。
请记住,在某些网络上,您需要获得阅读权限 性能计数器 远程团队。如果您的帐户没有这些,则 -u y -p 使用特权用户解决了问题并允许 PsList 访问数据.
实际例子
要查找名称以特定字符串开头的所有进程,请按前缀进行过滤 微调你感兴趣的内容 版本:
pslist svchost
如果您对已知 PID 的特定进程感兴趣, 限制输出 到该标识符:
pslist 888
要通过单个命令获取完整快照(进程 + 内存 + 线程),请激活 组合视图:
pslist -x
当你想了解父进程和子进程之间的关系时,没有什么比 树 解开层级结构并找出谁发起了谁:
pslist -t
将 PsList 与其他 PsTools 结合使用(PsKill 和 PsExec)
一旦找到了行为异常的进程,你就可以从观察转向 使用 PsKill 采取行动典型的流程是:列出远程机器上的树,记下名称或 PID,并以受控的方式终止它。
pslist -t \\[EquipoRemoto o IP]
pskill -t \\[EquipoRemoto o IP] -u [EQUIPO\UsuarioAdmin] -p [Password] [NombreProceso o PID]
修饰符 -t PsKill 确保最终版本完成 过程及其后代 (当有线程挂起时很有用)。如果需要,可以使用 PsExec 重新启动二进制文件 模拟受影响的服务或应用程序的“重启”。
psexec \\[EquipoRemoto o IP] -u [EQUIPO\UsuarioAdmin] -p [Password] "C:\\Ruta\\Programa\\app.exe"
通过这种组合,在商业环境中很容易测试, 恢复服务 无需远程桌面,或根据策略和服务窗口自动执行维护任务。
内存分析中的 PsList(波动性):取证难题的一部分
在事件响应领域,“pslist”的概念也出现在 挥发性,分析平台 内存转储。这里的想法有所不同:您不是在检查实时 Windows,而是 RAM 捕获 重建当时发生的事情。
在 Volatility 2 中,进程列表是通过以下方式获取的 vol.py ... pslist,搜索隐藏进程 psscan 以及层次结构 pstree。此外,还有 psxview 对比视图并检测遮挡。在 Volatility 3 中,命令更改为 Windows 前缀 (例如, windows.pslist, windows.psscan, windows.pstree),并且没有与 psxview 直接等效的程序。
# Volatility 2
vol.py -f "memdump.raw" --profile <perfil> pslist
vol.py -f "memdump.raw" --profile <perfil> psscan
vol.py -f "memdump.raw" --profile <perfil> pstree
# Volatility 3
vol.py -f "memdump.raw" windows.pslist
vol.py -f "memdump.raw" windows.psscan
vol.py -f "memdump.raw" windows.pstree
网络模块、服务、内核模块等也都有各自的变体。在 V2 中,您可以使用 netscan, modules, svcscan, filescan, handles, dlllist, cmdline, hivescan y hivelist在 V3 中,它们的对应形式为 Windows 网络扫描, windows.模块, windows.svcscan, windows.文件扫描, 窗口句柄, windows.dll列表, 窗口命令, windows.printkey等等。
# Ejemplos de Volatility 3
vol.py -f "memdump.raw" windows.netscan
vol.py -f "memdump.raw" windows.modules
vol.py -f "memdump.raw" windows.svcscan
vol.py -f "memdump.raw" windows.filescan
vol.py -f "memdump.raw" windows.handles --pid <PID>
vol.py -f "memdump.raw" windows.dlllist --pid <PID>
vol.py -f "memdump.raw" windows.cmdline
对于提取,在 V2 中您使用 memdump o dumpfiles 同 输出目录,在 V3 中插件 windows.dumpfiles 允许倾倒 PID,虚拟或物理地址. 这些流程将流程分析与 网络工件、日志和模块,形成完整的法医视角。
简而言之,虽然 Volatility 中的“pslist”与 Sysinternals 的 PsList 不是同一个实用程序,但它们的目标是相同的 重建流程活动如果你从事 DFIR 工作,那么掌握两个领域是很有用的:使用 PsTools 进行实时分析和分析 这一点在线下监测数字化产品的影响方面尤为明显。 具有 Volatility 2/3 及其新的插件名称。
完成愿景的相关工具
除了 PsList 之外,Windows 生态系统中还有一些实用程序可以增加视角。 把它们放在手边 它使您在诊断的不同阶段更加灵活。
- 列表工具:来自 MS 调试工具。显示进程树(
-t) 并接受通过 PID 或名称表达式进行过滤。 - pulist.exe:来自 Windows 2000 套件。非常简单;列出名称、PID 和用户帐户,您可以查询 远程团队.
- CMDLINE:揭示 参数和标志 除了图像路由之外,还启动了一个进程。
- 处理:列表 打开手柄 按流程,并可选择关闭特定流程。
- 列出dll:列出进程加载的 DLL,包括路径和 版本化.
- 下午转储:转储进程的内存 电位诱导衰减,对于高级分析很有用。
- Process Explorer的:一个非常强大的图形界面,汇集了大多数这些功能,非常适合 你不需要脚本.
良好实践和操作说明
对于远程环境,确保 防火墙和策略 允许访问性能计数器和必要的服务。这样可以避免访问被拒绝的错误,这些错误不是由于 PsList 引起的,而是由于 组态 的网络。
当使用脚本进行自动化时,请考虑如何 保护凭证。在命令行中传递清晰的密码可能会在历史记录中暴露它们;像 交互式提示 或者在生产中最好使用秘密的箱子。
PsList 的输出是纯文本,可以很好地与 管道和重定向。您可以将其发送到文件,然后使用 findstr 或者用一个小的 后期处理.
pslist -x > informe_pslist.txt
pslist -m | findstr /i "chrome firefox"
当你与 负荷很大的球队,避免过于激进的刷新间隔 -r负责任的采样可最大限度地减少观察对敏感系统的影响。
哪里可以找到 PsList 和社区
PsList 出现在 PsTools 包 Sysinternals 出品,可从微软官方网站访问。该套件定期更新,并添加了以下工具: PsExec、PsKill、PsService、PsLoggedOn 以及许多其他专为本地和远程管理而设计的。
如果您希望解决具体疑问或分享经验, Sysinternals 社区 以及 Windows 主题论坛提供了实用的答案。查看官方性能计数器文档也有助于您了解 如何计算 某些指标以及它们与您在其他实用程序中看到的指标不同的原因。
使用 PsList,您可以快速详细了解正在运行的进程、它们如何消耗资源以及它们在本地和远程如何相互关联。 如果你添加 PsKill 和 PsExec,您完成了整个循环:识别、干预和重新启动服务,同时保持控制,而无需依赖图形会话或复杂的交互式访问。
对字节世界和一般技术充满热情的作家。我喜欢通过写作分享我的知识,这就是我在这个博客中要做的,向您展示有关小工具、软件、硬件、技术趋势等的所有最有趣的事情。我的目标是帮助您以简单而有趣的方式畅游数字世界。