Windows 會在登錄中記錄每個連接過的 USB 裝置資訊 (VID/PID、序號、掛載時間、磁碟機代號等),涉及資料外洩風險。本文提供從裝置管理器清除到登錄深度清理的完整流程,適用於保密需求較高的環境。
devmgr_show_nonpresent_devices,值:1 (讓裝置管理器顯示已斷連裝置)。
devmgmt.msc) → 「檢視」 → 勾選「顯示隱藏的裝置」。⚠ 操作前請完整備份登錄 (regedit → 檔案 → 匯出) 或建立系統還原點!
刪除以下機碼下的 USBSTOR 子機碼 (若存在):
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTORHKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum\USBSTORHKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Enum\USBSTORHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR在以下機碼下,刪除除 ROOT_HUB、ROOT_HUB20 以外的所有子機碼:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBHKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum\USBHKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Enum\USBHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB刪除含 USB 字樣的類別 GUID 子機碼,例如:
{53f56307-b6bf-11d0-94f2-00a0c91efb8b} (磁碟裝置){a5dcbf10-6530-11d2-901f-00c04fb951ed} (大容量儲存裝置)路徑模式:HKEY_LOCAL_MACHINE\SYSTEM\ControlSetXXX\Control\DeviceClasses\{GUID}\##?#USBSTOR#...
# 備份登錄
reg export HKLM\SYSTEM\CurrentControlSet\Enum\USBSTOR C:\Backup\USBSTOR_$(Get-Date -Format yyyyMMdd).reg
reg export HKLM\SYSTEM\CurrentControlSet\Enum\USB C:\Backup\USB_$(Get-Date -Format yyyyMMdd).reg
# 刪除 USBSTOR
Remove-Item -Recurse -Force "HKLM:\SYSTEM\ControlSet001\Enum\USBSTOR"
Remove-Item -Recurse -Force "HKLM:\SYSTEM\ControlSet002\Enum\USBSTOR"
Remove-Item -Recurse -Force "HKLM:\SYSTEM\CurrentControlSet\Enum\USBSTOR"
# 刪除 USB (保留 ROOT_HUB*)
$usbPaths = @(
"HKLM:\SYSTEM\ControlSet001\Enum\USB",
"HKLM:\SYSTEM\ControlSet002\Enum\USB",
"HKLM:\SYSTEM\CurrentControlSet\Enum\USB"
)
foreach ($path in $usbPaths) {
Get-ChildItem $path | Where-Object { $_.Name -notmatch 'ROOT_HUB' } | Remove-Item -Recurse -Force
}