首页/安全/取证与溯源速查/安装痕迹与 MSI 日志
Windows 取证55 条

安装痕迹与 MSI 日志

程序安装留两处痕:注册表 Uninstall 键与 MSI 日志:判断"何时装了带安全软件"的常见路径。

取证与溯源速查安全更新于 2026-10-13

安装痕迹从哪查

Windows 上的软件安装会在几处留下时间线:注册表 Uninstall 键记录已注册程序的名称、发布者与安装日期;MSI 安装过程会在 %TEMP% 生成 MSI*.log 详细日志;系统盘的 Windows\Installer 目录则保存安装缓存与实际安装包副本。三处互相印证,能回答“某软件是什么时候装的、由谁装的、装的哪一个版本”,在排查被植入的远程控制工具或伪装成正常软件的攻击载荷时非常关键。

基本信息

适用平台Windows 7/10/11 与 Windows Server 2008 及以上
注册表位置HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall(32 位程序在 WOW6432Node 下)与每用户 HKCU 下同名键
日志位置%TEMP%\MSI*.log(安装执行账号的临时目录)
安装缓存C:\Windows\Installer 下的 .msi/.msp 与缓存元数据
关键字段DisplayName、Publisher、InstallDate、InstallLocation、DisplayVersion

典型使用场景

  • 确认在事件窗口内是否有新软件被安装,尤其是远控、隧道与扫描类工具
  • 核对已安装程序的版本,判断是否存在与台账不符的可疑版本
  • 从 InstallDate 与安装日志定位安装的执行账号与时间
  • 提取安装包副本用于哈希比对与真实类型鉴定
  • 排查静默安装:无交互的生产主机上出现新安装项,通常源于脚本或远程下发

查询安装记录

查询安装记录
# 已注册程序清单,按安装日期倒序
Get-ItemProperty 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*' |
  Select-Object DisplayName, Publisher, DisplayVersion, InstallDate |
  Sort-Object InstallDate -Descending | Select-Object -First 20
# 32 位程序需另查 WOW6432Node
Get-ItemProperty 'HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*' |
  Select-Object DisplayName, InstallDate | Sort-Object InstallDate -Descending | Select-Object -First 20
# 列最近的安装缓存文件(.msi 可直接复制用于比对)
Get-ChildItem 'C:\Windows\Installer' -File | Where-Object { $_.Extension -in '.msi','.msp' } |
  Sort-Object LastWriteTime -Descending | Select-Object -First 15 Name, LastWriteTime, Length

安装痕迹对照

位置记录内容判读要点
Uninstall 键程序名、发布者、版本、安装日期InstallDate 格式为 yyyyMMdd,精度只到天
MSI*.log安装全过程、属性与回滚信息文件名含随机串,按时间排序找目标时段
Windows\Installer安装缓存与安装包副本可提取原始包计算哈希,注意文件名被压缩重命名
系统事件日志 7045/7036服务安装与状态变化静默安装服务类程序时会留下记录
Prefetch / Amcache程序曾出现与执行的佐证与安装时间结合可判断安装后是否运行
绿色软件、脚本投放与解压即用的工具不会写入 Uninstall 键,未出现在程序列表里不能说明没装过;这类情况要看文件系统时间、Prefetch、Amcache 与服务注册痕迹。
InstallDate 由安装程序写入,可被伪造或为空;重要结论应以 MSI 日志与事件日志中的时间为主,注册表日期作为辅助。

易错点

  • 只用 InstallDate 排序:该字段精度只到天且可能缺失,无法区分同一天的多次安装,必须结合日志与文件时间
  • 漏查 WOW6432Node 与 HKCU 分支:32 位程序与每用户安装的程序不在默认键下,只查一处会漏项
  • 直接在生产机上清理 Windows\Installer:该目录被卸载与修复流程依赖,删除会影响系统与软件维护,分析阶段只读取不修改
  • 把安装记录当成执行证据:安装完成不等于运行过,执行痕迹要看 Prefetch、Amcache、进程创建日志与网络连接
  • 忽略安装日志的时间限制:%TEMP% 会被清理工具与系统维护清空,重要主机应在响应早期就把 MSI*.log 与 Installer 目录清单固定下来

数据来源与参考

  • Microsoft Docs(Uninstall 注册表键)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌