Win8/8.1/10 強制要求內核模式驅動簽名 (KMCS),未經 Microsoft WHQL/認證簽名的驅動 (舊硬件、開發版驅動、修改版驅動、虛擬設備驅動) 默認無法安裝,提示「驅動程序簽名驗證失敗」/「系統找不到指定的文件」。
適用場景: 單次安裝特定未簽名驅動,不希望永久降低系統安全性。
原理: 修改啟動配置數據 (BCD) 設置 TESTSIGNING ON 並禁用完整性檢查,系統長期接受測試簽名/無簽名驅動。
enable_testsigning.cmd,內容:bcdedit -set loadoptions DDISABLE_INTEGRITY_CHECKS bcdedit -set TESTSIGNING ON

disable_testsigning.cmd,內容:bcdedit -set loadoptions ENABLE_INTEGRITY_CHECKS bcdedit -set TESTSIGNING OFF

signtool.exe、inf2cat、makecert。makecert -r -pe -ss PrivateCertStore -n "CN=TestDriverCert" testcert.cerinf2cat /driver:<驅動目錄> /os:8_x64signtool sign /v /s PrivateCertStore /n "TestDriverCert" /t https://timestamp.verisign.com/scripts/timestamp.dll <驅動目錄>\<驅動名>.cat| 方案 | 安全風險 | 建議使用場景 |
|---|---|---|
| 臨時禁用 (F7) | 低 (重啟自動恢復) | 一次性安裝舊硬件/特定版本驅動 |
| 全局測試模式 (BCD) | 高 (長期接受任意未簽名內核代碼,惡意驅動可植入 Rootkit) | 驅動開發/調試/頻繁測試多個未簽名驅動 |
| 單驅動測試簽名 | 可控 (僅信任特定憑證簽名的驅動) | 生產環境必須部署未簽名驅動時 |
最佳實踐: 優先尋找廠商官網最新 WHQL 驅動;實在無官方驅動時,優先「臨時禁用」;開發環境使用「單驅動測試簽名」;避免長期運行「全局測試模式」。