# USB 根目錄建立特徵檔
echo. > H:\suo.txt
# 內容可自訂,如加入 UUID、時間戳、雜湊值增加難度
echo USB_KEY_2024_$(date /t) > H:\suo.txt
@echo off
setlocal enabledelayedexpansion
:: 設定 USB 磁碟機代號 (需根據實際環境調整或動態偵測)
set USB_DRIVE=H:
set KEY_FILE=suo.txt
set TIMEOUT=3
:: 動態偵測 USB 磁碟機 (進階,可替代固定代號)
:: for /f "tokens=2 delims==" %%a in ('wmic logicaldisk where "drivetype=2" get deviceid /value') do set USB_DRIVE=%%a
if not exist "%USB_DRIVE%\%KEY_FILE%" (
echo.
echo ========================================
echo 錯誤: 未偵測到授權 USB 金鑰!
echo 請插入授權 USB 隨身碟後重新開機。
echo 系統將在 %TIMEOUT% 秒後自動關機。
echo ========================================
echo.
shutdown -s -t %TIMEOUT% -c "未授權存取: 缺少 USB 金鑰,系統自動關機保護資料安全。"
exit /b 1
) else (
echo USB 金鑰驗證通過,允許登入。
exit /b 0
)
| 增強項目 | 實作方式 | 效果 |
|---|---|---|
| 動態偵測磁碟機代號 | WMI/PowerShell 列舉可移動磁碟、比對磁碟標籤/序號/特徵檔 | 解決磁碟機代號漂移 (H→I→G) 問題 |
| 加密特徵檔內容 | USB 存放加密 Token,腳本解密驗證 (AES/RSA/雜湊) | 防止複製 `suo.txt` 到其他 USB 破解 |
| 硬體 ID 綁定 | 讀取 USB VID/PID/序號/唯一 ID,腳本比對白名單 | 綁定特定物理裝置,防止複製檔案繞過 |
| 雙因子:USB + PIN 碼 | 腳本彈出輸入框 (VBS/PowerShell Forms) 驗證 PIN | USB 遺失也無法單獨登入 |
| 登入失敗日誌/警報 | 寫入事件檢視器/發送郵件/推播通知 | 審計追蹤、即時告警 |
| 安全模式/PE 繞過防護 | 啟用 BitLocker 系統盤加密 + TPM + PIN | 防止繞過登入腳本的離線攻擊 |
# CheckUSBKey.ps1
$KeyFileName = "suo.txt"
$AuthorizedDrives = @() # 可預設白名單序號/VID_PID
$RemovableDrives = Get-WmiObject Win32_LogicalDisk | Where-Object {$_.DriveType -eq 2}
$KeyFound = $false
foreach ($Drive in $RemovableDrives) {
$KeyPath = Join-Path $Drive.DeviceID $KeyFileName
if (Test-Path $KeyPath) {
# 進階:驗證檔案內容雜湊/簽名
# $Content = Get-Content $KeyPath -Raw
# if ($Content -match "ExpectedPattern") { $KeyFound = $true; break }
$KeyFound = $true
break
}
}
if (-not $KeyFound) {
Write-Host "未偵測到授權 USB 金鑰,系統將在 3 秒後關機..." -ForegroundColor Red
shutdown /s /t 3 /c "未授權存取: 缺少 USB 金鑰"
exit 1
}
exit 0
群組原理登入腳本設定:`powershell.exe -ExecutionPolicy Bypass -File "C:\Scripts\CheckUSBKey.ps1"`
物理金鑰的進化: 從批次腳本檢測檔案 → PowerShell 驗證硬體 ID/加密 Token → 群組原理部署 → 整合 BitLocker TPM+USB 金鑰模式 → **Windows Hello / FIDO2 安全金鑰 (YubiKey/Feitian/內建 TPM)**。現代標準:**無密碼認證、硬體根信任、公開金鑰加密、防重放/防釣魚**。這個批次腳本方案是理解原理的優秀教學案例,生產環境請升級到現代標準。
插 U盤開機藍屏 0x0000007B?三大原因排查:磁盤錯誤、控制器驅動、病毒攻擊
USB 讀寫速度慢?開啟「寫入快取」提升效能、正確拔除習慣延長壽命完整指南
U 盤中毒 Word 檔案變隱藏/亂碼?完整救援流程:恢復隔離區 → 解除隱藏 → WinHex 修復檔頭 → 徹底清毒
修改 USB 開機選單:menu.lst 設定檔詳解與實戰範例
Mac 重裝 macOS 完整圖文教學:Command+R 恢復模式、Time Machine 還原、磁碟工具分割、網路重裝全流程詳解
U 盤顯示可用空間 0 位元組但實際未滿?Format 命令一鍵修復文件系統