C#读取注册表获取U盘使用记录

读注册表获取 U 盘使用记录的 C#写法,算是比较实用的小技巧,尤其适合做设备审计或者用户行为的场景。重点在两个注册表路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBUSBSTOR,信息还挺全的,U 盘插过没,一查就知道。

注册表下的这些子项其实是系统自动生成的,一旦 U 盘插入,Windows 就会记录设备信息,包括厂商 ID、产品 ID、序列号这些。用 C#读注册表挺方便的,Microsoft.Win32下面的几个类就能搞定,像 RegistryKey.OpenSubKey() 用得比较多。

代码也不复杂,大致逻辑是遍历 Enum\USB 下面的子项,再逐层往下查,拿到硬件 ID 和子项名,有时候还能读到设备。配合 USBSTOR 部分的信息,就能把插入过的 U 盘差不多搞清楚。

有意思的是,你还能判断 U 盘是不是还插着,通过对比 MountedDevices 或者查看设备状态字段,虽然不 100%准确,但八九不离十。想搞点设备溯源的功能,用这个挺合适。

如果你用 C#搞运维工具、安全审计模块,这段逻辑可以封装成一个方法调用。嗯,顺手推荐一篇相关文章:禁用 U 盘和光驱(Delphi 操作注册表源码),虽然是 Delphi 写的,但思路差不多。

提醒一下,操作注册表前最好加上权限判断和异常,毕竟不是所有用户都有管理员权限,兼容性这块别偷懒哦。

zip 文件大小:42.63KB