windows下usb挂载无专用事件id(如640),但可通过注册表hklm\system\currentcontrolset\enum\usbstor和mounteddevices键的lastwritetime、系统日志eid 20003等痕迹综合推断挂载行为。
windows 环境下外部存储设备的挂载行为本身不会直接生成标准系统事件日志(如 event id 640)来记录“挂载动作”,但系统会在多个底层位置留下可观测痕迹,这些痕迹可被用于取证分析或日常排查。
挂载过程不触发常规事件日志
Windows 并未为每次 USB 设备插入或磁盘挂载(如分配盘符、挂载到 NTFS 卷)设计专用事件 ID。像 Event ID 640 这类日志,实际关联的是 存储复制、ReFS 数据损坏或 iSCSI/MPIO 故障场景,而非普通 U 盘或移动硬盘的挂载/卸载操作。因此,单纯查看 Windows 日志(Application/System/Security)无法通过事件 ID 找到“某 U 盘于 X 时挂载到 E:”这类明确记录。
真实可用的挂载痕迹来源
-
注册表枚举路径
-
HKLM\SYSTEM\CurrentControlSet\Enum\USBSTOR:记录所有曾连接过的 USB 存储设备(含厂商名、型号、修订号),每个子键名形如Disk&Ven_SanDisk&Prod_Cruzer_Blade&Rev_1.25。 -
HKLM\SYSTEM\CurrentControlSet\Enum\USB:按 VID/PID 标识设备(如VID_0781&PID_5567),配合序列号字段(部分设备提供)可唯一识别硬件。 - 注意:这些键值本身不含时间戳;挂载时间需通过其子项(如
Properties或Device Parameters)中LastWriteTime属性间接推断(需工具解析,如 Regedit 的“修改时间”列不可见,需用 PowerShell 或取证工具读取)。
-
-
卷挂载点与驱动器映射信息
- 每次成功挂载后,系统在
HKLM\SYSTEM\MountedDevices中写入二进制数据,将设备对象(如\Device\HarddiskVolume3)与驱动器号(如\DosDevices\E:)关联。该键值更新即代表一次有效挂载。 - 此处无时间字段,但可通过该键的最后修改时间(registry hive 文件时间或子项 LastWriteTime)辅助判断挂载发生时段。
- 每次成功挂载后,系统在
-
USN 日志与卷索引(NTFS 特有)
- 若设备使用 NTFS 格式且启用 USN 日志(默认开启),挂载后首次访问卷时可能触发
$UsnJrnl更新,但不记录挂载动作本身,仅记录后续文件操作。 - 不适用于 FAT32/U 盘常见格式,也非挂载证据的主渠道。
- 若设备使用 NTFS 格式且启用 USN 日志(默认开启),挂载后首次访问卷时可能触发
-
事件查看器中的间接线索
-
System日志中可能包含:- Event ID 20003(来自
Microsoft-Windows-DriverFrameworks-UserMode):表示 USB 设备已枚举并加载驱动。 - Event ID 7045(服务安装)或 7036(服务状态变更):若设备附带自动运行软件或虚拟 CD-ROM(如某些加密 U 盘)。
- Event ID 1001(Windows Error Reporting):若挂载导致驱动崩溃,可能留痕。
- Event ID 20003(来自
- 这些事件不等于挂载完成确认,仅反映设备识别或驱动加载阶段。
-
实用建议:如何定位某次挂载行为
-
使用 PowerShell 快速检查最近 USB 设备枚举时间:
Get-ChildItem "HKLM:\SYSTEM\CurrentControlSet\Enum\USBSTOR" -Recurse | Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays(-7)} | Select-Object Name, LastWriteTime -
查看
MountedDevices键最后修改时间(需管理员权限):$key = Get-Item "HKLM:\SYSTEM\MountedDevices" $key.LastWriteTime
配合第三方工具(如 USBDeview、PlugInDetect)导出带时间的挂载历史——它们本质是解析注册表 + 系统日志 + PnP 日志的组合结果,并非调用单一事件源。
不复杂但容易忽略











