HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum\USBSTOR
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Enum\USBSTOR
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR
每個 USB 儲存裝置在這裡建立以 `Vid_XXXX&Pid_XXXX\SerialNumber` 命名的子機碼。刪除此分支下所有子機碼 即可清除該類裝置歷史。
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USB
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum\USB
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Enum\USB
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB
**保留 `ROOT_HUB`、`ROOT_HUB20`、`ROOT_HUB30`** (根集線器),**刪除其他所有裝置子機碼**(如 `Vid_XXXX&Pid_XXXX\...`)。
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasses\{53f56307-b6bf-11d0-94f2-00a0c91efb8b} # Disk
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasses\{a5dcbf10-6530-11d2-901f-00c04fb951ed} # Volume
... (對應 ControlSet002/003/CurrentControlSet)
刪除包含 `USBSTOR` 字串的裝置介面實例機碼(長串 GUID 路徑)。
# Clean-USBTraces.ps1
# 需管理員權限執行
$ControlSets = @("ControlSet001","ControlSet002","ControlSet003","CurrentControlSet")
$DeletedCount = 0
function Remove-KeyRecursive($Path) {
if (Test-Path $Path) {
try {
# 取得權限
$Acl = Get-Acl $Path -ErrorAction SilentlyContinue
if ($Acl) {
$Rule = New-Object System.Security.AccessControl.RegistryAccessRule("Administrators","FullControl","Allow")
$Acl.AddAccessRule($Rule)
Set-Acl $Path $Acl -ErrorAction SilentlyContinue
}
Remove-Item $Path -Recurse -Force -ErrorAction SilentlyContinue
$global:DeletedCount++
Write-Host "已刪除: $Path" -ForegroundColor Green
} catch {
Write-Warning "刪除失敗: $Path - $_"
}
}
}
foreach ($CS in $ControlSets) {
# USBSTOR
Remove-KeyRecursive "HKLM:\SYSTEM\$CS\Enum\USBSTOR"
# USB (排除 ROOT_HUB)
$USBPath = "HKLM:\SYSTEM\$CS\Enum\USB"
if (Test-Path $USBPath) {
Get-ChildItem $USBPath | Where-Object {$_.Name -notmatch 'ROOT_HUB'} | ForEach-Object {
Remove-KeyRecursive $_.PSPath
}
}
# DeviceClasses (磁碟/磁碟區介面)
$DCPath = "HKLM:\SYSTEM\$CS\Control\DeviceClasses"
if (Test-Path $DCPath) {
Get-ChildItem $DCPath -Recurse | Where-Object {$_.PSPath -match 'USBSTOR'} | ForEach-Object {
Remove-KeyRecursive $_.PSPath
}
}
}
Write-Host "清除完成,共處理 $DeletedCount 個機碼。建議重啟電腦。" -ForegroundColor Cyan
清除 ≠ 消除所有證據: 註冊表清除只能應付**一般軟體掃描/保密檢查/驅動衝突**。**深度取證**仍可從:系統還原點、頁面檔/休眠檔、記憶體轉儲、檔案系統 `$LogFile`/`$UsnJrnl`、事件日誌、EFI 變數、硬碟固件日誌、網路流量日誌、雲端同步記錄 等來源重建 USB 使用證據。**真正的無痕需求:全盤加密 + 臨時系統 (Live USB/虛擬機) + 物理隔離 + 記憶體加密 + 無日誌模式。**