用powershell可快速查usb设备插拔记录、历史识别设备及实时状态:执行get-winevent查id2003/2100事件获精确时间戳;读取hklm:\usbstor注册表项列出曾接入的u盘型号;用get-pnpdevice筛选当前已连接usb存储设备并显示硬件id。

要快速确认某台Windows电脑近期是否接入过特定U盘或移动硬盘,不打开图形界面、不依赖第三方工具,仅用系统自带命令行就能查到带时间戳的连接记录,可直接调用事件日志接口或设备枚举接口完成追溯。
用PowerShell查USB插拔事件(含精确时间)
这一步直接读取系统内核生成的PnP事件,比手动翻事件查看器更快,且支持导出为CSV供后续分析。
1、右键开始按钮 → 选择“Windows PowerShell(管理员)”;
2、执行命令:Get-WinEvent -FilterHashtable @{LogName='System'; ID=2003,2100} | Where-Object {$_.Properties[0].Value -like "*USB*"} | Select TimeCreated, Id, Message | Format-List;
3、输出结果中每条记录都含【TimeCreated】字段,即设备插入(ID 2003)或安全移除(ID 2100)的准确时刻,Message字段含硬件ID(如USB\VID_0781&PID_5581);
4、若需保存为文件,将命令末尾改为 | Export-Csv -Path "$env:USERPROFILE\Desktop\usb_events.csv" -Encoding UTF8 即可。
用CMD+PowerShell组合查已识别USB存储设备
适用于想确认哪些U盘曾被系统“记住”过,哪怕早已拔掉——这类信息存在注册表,但CMD无法直接读,需借PowerShell绕过注册表编辑器图形界面。
方法一:列出所有USBSTOR下设备名称
在PowerShell(管理员)中运行:Get-ChildItem 'HKLM:\SYSTEM\CurrentControlSet\Enum\USBSTOR' -Recurse | Where-Object {$_.PSChildName -eq 'FriendlyName'} | ForEach-Object {Get-ItemProperty $_.PSParentPath}.FriendlyName;
方法二:只显示厂商与型号(跳过序列号干扰)
运行:Get-ChildItem 'HKLM:\SYSTEM\CurrentControlSet\Enum\USBSTOR' | ForEach-Object {$name = $_.PSChildName; if($name -match 'Disk&Ven_(.+?)&Prod_(.+?)&') { "$($matches[1]) $($matches[2])" }};
注意:【必须以管理员身份运行PowerShell】,否则读取HKLM路径会因权限不足返回空结果。
用PowerShell一键导出全部USB设备实时状态
该命令不查历史,但能立刻告诉你当前系统识别了多少个USB设备、是否启用、挂载路径为何,适合排查插入后无反应的问题。
第一步:执行 Get-PnpDevice -Class USB,查看所有USB类设备基础列表;
第二步:筛选出“已连接”且非系统内置控制器的设备:Get-PnpDevice -Class USB | Where-Object {$_.Status -eq 'OK' -and $_.Name -notmatch 'Root Hub|xHCI|EHCI|OHCI'};
第三步:对结果追加硬件ID和实例路径:| Select Name, Status, InstanceId | Format-Table -AutoSize;
这条链式命令会直接输出干净表格,其中InstanceId字段以USB\开头的部分就是完整硬件标识,可用于反向查注册表或匹配事件日志。











