Event ID 3001 CodeIntegrity: не удалось загрузить драйвер — решение
Симптомы ошибки Code Integrity 3001
В журнале Applications and Services Logs > Microsoft > Windows > CodeIntegrity > Operational или в журнале System фиксируется ошибка: Event ID 3001: Windows Code Integrity is unable to load the driver [Имя_файла.sys] because it is not signed correctly or signature is corrupt.
| Признак | Последствие |
|---|---|
| Отказ запуска службы или устройства | Оборудование отображается с желтым восклицательным знаком в Диспетчере устройств (Код 52) |
| Сбой запуска антивируса/мониторинга | Агенты резервного копирования или защиты не могут запустить драйвер ядра |
| Синий экран (BSOD 0x7B или 0x7E) | Если блокируется критический драйвер накопителя или чипсета |
Пошаговое устранение ошибки Event ID 3001
Подсистема Code Integrity (CI) блокирует драйверы, у которых отсутствует валидная цифровая подпись Microsoft WHQL или подпись создана с использованием устаревших алгоритмов хеширования (SHA-1 вместо SHA-256).
- Проверьте цифровую подпись проблемного файла:
# Проверка цифровой подписи драйвера через PowerShell:
Get-AuthenticodeSignature "C:\Windows\System32\drivers\имя_драйвера.sys" | Format-List *- Установите последние обновления корневых сертификатов:
# Обновление списка доверенных корневых сертификатов Windows:
CertUtil -generateSSTFromWU C:\roots.sst
$sst = Get-ChildItem -Path C:\roots.sst
$sst | Import-Certificate -CertStoreLocation Cert:\LocalMachine\Root
Remove-Item C:\roots.sst -Force- Временно отключите изоляцию ядра (Hypervisor-Protected Code Integrity - HVCI), если требуется запуск специализированного ПО:
# Отключение принудительной изоляции ядра HVCI через реестр:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" -Name "Enabled" -Value 0 -Type DWord- Замените драйвер на официально подписанный: скачайте последнюю версию драйвера с сайта производителя устройства с нативной поддержкой SHA-256.
Внимание: Использование тестового режима подписи (bcdedit /set testsigning on) категорически не рекомендуется для постоянной работы продуктивных серверов, так как это снижает уровень защиты ядра.
Частые вопросы (FAQ)
Почему старый драйвер внезапно перестал загружаться после обновления Windows?
Microsoft поэтапно блокирует драйверы, подписанные устаревшим сертификатом SHA-1 или сертификатами с истекшим сроком доверия перекрестной подписи (Cross-Certificate Expiration).
Что означает ошибка 52 в Диспетчере устройств?
Код 52 указывает: 'Не удается проверить цифровую подпись драйверов, необходимых для этого устройства'. Это прямое следствие блокировки Code Integrity.
Можно ли самостоятельно подписать драйвер самоподписанным сертификатом?
Для режима ядра самоподписанный сертификат должен быть установлен в хранилище 'Доверенные корневые центры сертификации' и включен тестовый режим загрузки Windows.
Где посмотреть подробный журнал проверки подписей драйверов?
В оснастке Просмотр событий: Журналы приложений и служб -> Microsoft -> Windows -> CodeIntegrity -> Operational.