当有人将 USB 设备连接到 Windows 计算机或从 Windows 计算机移除 USB 设备时进行记录

当有人将 USB 设备连接到 Windows 计算机或从 Windows 计算机移除 USB 设备时进行记录

我目前正在尝试寻找一种方法来记录所有的我们网络上所有 Windows 机器上的 USB 设备的连接和断开情况。这些信息需要自动记录到机器上的一个文件中,然后 nxlog 可以读取该文件,然后将其发送到我们的集中日志平台进行处理。我希望 Windows 日志会自动记录这些信息,但我发现虽然一些有关 USB 可移动存储的信息似乎记录到了事件查看器中,但这些信息非常有限,并且无法识别 USB 键盘和鼠标的连接和断开情况。

经过一番挖掘,我发现 nirsoft 编写了一个小型 exe,可以完成很多艰苦的工作,USB日志查看器无需安装即可运行,每次 USB 设备连接和断开与计算机的连接时都会记录。问题是,我找不到将其作为服务运行的方法,也找不到让它自动将其输出的信息记录到日志文件的方法,尽管您可以选择日志条目并手动选择将它们保存到日志文件。

我可以使用组策略创建 exe 文件的本地副本,然后以某种方式强制此 exe 在启动期间运行,但主要问题仍需要克服,即无法将日志自动写入文件。我还需要能够确保用户无法关闭程序,这在我自己启动它时是可能的,理想情况下,将其隐藏并且不显示托盘图标是最好的设置方式(但当我尝试使用隐藏设置时,在我看来,它既可以显示在主窗口中,也可以仅显示系统托盘图标)。我查看了网站,但我没有看到任何方法可以通过选项来调用程序来告诉它执行此操作。我上周还给 nirsoft 发了电子邮件,看他们是否有任何建议,但我仍在等待回复。

有没有人有其他方法可以做到这一点?欢迎​​提出任何建议或帮助!谢谢

答案1

有付费解决方案,例如 CoSoSys 的 EndProtection4。不知道它在设备上安装的代理中是如何工作的,但它会为您提供有关插入设备的所有信息。您需要一个管理客户端的服务器端,因为这是管理设备访问的软件。也适用于 Mac 和 Linux。

答案2

USB 设备的连接和断开记录在“事件日志”中。

引用此详细说明(《数字取证流》博客,2014 年 1 月 2 日,Windows 7 事件日志和 USB 设备跟踪):

连接事件 ID
当 USB 可移动存储设备连接到 Windows 7 系统时,Microsoft-Windows-DriverFrameworks-UserMode/Operational 事件日志中应该会生成许多事件记录。这些记录包括事件 ID 为 2003、2004、2005、2010、2100、2105 等的记录。...

断开连接事件 ID
当 USB 拇指驱动器与 Windows 7 系统断开连接时,应在与连接事件相同的事件日志中生成一些事件记录。当 USB 设备断开连接时,可能会生成事件 ID 为 2100、2102 甚至更多事件的记录。...

为了自动从事件日志中导出数据,Microsoft 提供了日志解析器免费。

答案3

我会尝试使用诸如 AutoIT 之类的工具。

$vFile = FileOpen("usb.txt", 2)

Local $vObjWMI = ObjGet("winmgmts:\\" & @ComputerName & "\root\cimv2")

$vObjItems = $vObjWMI.ExecQuery('SELECT * FROM Win32_DiskDrive')
If IsObj($vObjItems) Then
    For $vObjItem In $vObjItems
        If StringInStr($vObjItem.Caption, "USB") Then
            FileWriteLine($vFile, $vObjItem.Caption & @CRLF)
            FileWriteLine($vFile, $vObjItem.DeviceID & @CRLF & @CRLF)
        EndIf
    Next
EndIf

FileClose($vFile)

ShellExecute("usb.txt")

该帖子来自 AutoIT 论坛,网址为:http://www.autoitscript.com/forum/topic/155213-detect-usb-devices-connected/?p=1121434

答案4

使用regedit并查看registry以下项目: HKLM:\SYSTEM\CurrentControlSet\Enum\USBSTOR\。有关详细信息,请打开 PowerShell 并运行:

$Path = 'HKLM:\SYSTEM\CurrentControlSet\Enum\USBSTOR\*\*'
Get-ItemProperty -Path $Path | Select-Object -Property FriendlyName, CompatibleIDs, Mfg

或者查看此处的日志文件:C:\Windows\inf\setupapi.dev.log

有关更多技术细节,请参阅妮可的博客

相关内容