Event ID 30004 Code Integrity: сбой проверки целостности образа файла
Симптомы ошибки Code Integrity 30004
В журнале Applications and Services Logs > Microsoft > Windows > CodeIntegrity > Operational или System фиксируется ошибка: Event ID 30004: Windows Code Integrity is unable to verify the image integrity of the file [Имя_файла] because the set of per-page image hashes could not be found on the system.
| Симптом | Последствия |
|---|---|
| Отказ запуска приложения или службы | Программа завершается с ошибкой «Не удается проверить цифровую подпись» |
| Блокировка стороннего драйвера | Устройство не функционирует в диспетчере устройств |
| Ошибки при включенном WDAC / HVCI | Политика целостности кода блокирует запуск старых бинарных файлов |
Пошаговое устранение ошибки Event ID 30004
- Проверьте валидность цифровой подписи проблемного файла:
# Проверка подписи конкретного файла через PowerShell:
Get-AuthenticodeSignature -FilePath "C:\Путь\К\Файлу.dll" | Format-List *- Обновите кэш каталогов безопасности Windows:
# Остановка криптографической службы и пересоздание catroot2:
Stop-Service -Name CryptSvc -Force
Rename-Item -Path "$env:SystemRoot\System32\catroot2" -NewName "catroot2.old" -Force
Start-Service -Name CryptSvc- Проверьте системные компоненты утилитой SFC:
# Проверка целостности системных файлов:
sfc /scannow- Сгенерируйте правило исключения для политики WDAC (если используется Device Guard): если файл легитимен, но подписан старым сертификатом страницы (Page Hash), добавьте его хэш в разрешающую политику Windows Defender Application Control.
Важно: Не отключайте функции безопасности Code Integrity целиком, если ошибка вызвана неизвестным файлом в папке Temp или AppData — это может быть попытка выполнения вредоносного кода.
Частые вопросы (FAQ)
Что такое Page Hashes (Постраничные хэши)?
Это контрольные суммы каждой страницы исполняемого файла, зашитые в цифровую подпись, позволяющие ядру проверять целостность файла при его постепенной подгрузке в память.
Почему старые программы 2008-2012 годов вызывают Event 30004?
Устаревшие утилиты подписывались без использования постраничного хеширования SHA-256, обязательного для современных версий Windows Server с включенным HVCI.
Как узнать, включена ли изоляция ядра (HVCI)?
В приложении 'Безопасность Windows' в разделе 'Изоляция ядра' или через реестр: HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard.
Помогает ли переустановка программы?
Да, установка свежего дистрибутива от разработчика с актуальной цифровой подписью полностью устраняет ошибку 30004.