首页/安全/应急响应速查/Get-CimInstance 进程画像(含命令行)

Get-CimInstance 进程画像(含命令行)

PowerShell 下用 Win32_Process 一次拿到 PID、父进程、可执行路径与完整命令行,比任务管理器信息全得多。

应急响应速查安全更新于 2026-10-13

Win32_Process 进程画像

PowerShell 下查看进程有两条路:Get-Process 输出简洁但不含命令行;Get-CimInstance 查 Win32_Process 能一次拿到进程号、父进程号、可执行路径、完整命令行、启动时间与会话号,是排查时信息量最大的一档。应急现场尤其看重命令行,因为下载地址、编码脚本、目标路径这些关键内容都只出现在参数里,只看进程名等于什么都没看到。

基本信息

核心类Win32_Process(Get-CimInstance 查询)
关键字段ProcessId、ParentProcessId、Name、ExecutablePath、CommandLine、CreationDate
排序方式按 CreationDate 降序,最快看到最近启动的进程
补充字段SessionId 判断是否为远程桌面会话,GetOwner 方法取运行账号
签名核对Get-AuthenticodeSignature 检查可执行文件签名状态
权限要求读取全量命令行需要管理员权限

典型使用场景

  • 按启动时间找入侵时间窗内新起的进程
  • 还原可疑进程的完整命令行,提取下载地址与参数
  • 核对进程的父进程关系,判断是人工执行还是服务拉起
  • 确认可执行文件路径与签名状态,识别放在临时目录的无签名程序
  • 与网络连接结果结合,把连接归属到具体进程

查进程与父子关系

查进程与父子关系
Get-CimInstance Win32_Process | Select-Object ProcessId,ParentProcessId,Name,ExecutablePath,CreationDate | Sort-Object CreationDate -Descending | Select-Object -First 25
Get-CimInstance Win32_Process -Filter "Name='powershell.exe'" | Select-Object ProcessId,CommandLine
Get-CimInstance Win32_Process | Where-Object { $_.ExecutablePath -like '*\\Temp\\*' -or $_.ExecutablePath -like '*\\AppData\\*' } | Select-Object ProcessId,Name,ExecutablePath
Get-CimInstance Win32_Process -Filter 'ProcessId=1234' | Invoke-CimMethod -MethodName GetOwner | Select-Object User,Domain
Get-AuthenticodeSignature 'C:\路径\程序.exe' | Select-Object Status,SignerCertificate

关键属性读法

属性含义异常信号
ProcessId进程号短时间内在同一名称下反复变化,说明有守护重启
ParentProcessId父进程号父进程是 Office、浏览器或 wscript,属于钓鱼典型链条
Name进程名仿冒系统进程名但路径不在 System32
ExecutablePath可执行文件路径位于 Temp、AppData、ProgramData 下的随机目录
CommandLine完整命令行含下载地址、编码内容、隐藏窗口参数
CreationDate启动时间与告警、文件落地时间吻合
SessionId会话号在无人使用的服务器上出现非零会话值得追查
父进程号不等于父进程还在:父进程早已退出时,该 PPID 可能已被系统复用给其他进程。判断父子关系时要看两者的创建时间是否可比,否则容易把无关进程串成一条链。
命令行里的编码内容不要直接执行去复现:把它解码成文本查看即可,直接运行可能触发二次载荷。解码后看到的地址与路径要作为 IOC 留存,并横向检索其他主机。
命令行与启动时间是易失信息:进程一退出就再也取不到。所以采集顺序上,先导出全量 Win32_Process(含 CommandLine)到证据文件,再谈终止进程。

易错点

  • 只看 Name 与 PID:漏掉命令行里的下载地址与参数,等于丢掉了最关键的一手信息
  • 直接运行命令行内容来判断:可能触发二次载荷,应解码后以文本方式阅读
  • 把 PPID 当可靠的父进程:父进程退出后 PID 会被复用,需结合创建时间判断
  • 忘记取运行账号:GetOwner 能说明是哪个账号在跑,很多后门以服务账号身份常驻
  • 在没落盘的情况下杀进程:命令行与启动时间随进程消失,后续无法复现判断依据

数据来源与参考

  • Microsoft Learn:Win32_Process 类
  • Microsoft Learn:Get-CimInstance

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌