Ошибка «Нет доверия к cab-файлу, необходимому для выполнения установки» возникает при странных обстоятельствах. Она отображается в системе Windows 7, 10, 11 лишь при попытке установить DirectX или NET Framework. Удивительно здесь то, что оба софта относятся к Microsoft, то есть по умолчанию должны получать высокий рейтинг доверия от системы, если даже не максимальный. Windows же не понимает, может ли систему доверять запущенному файлу или нет. Так как данная процедура очень опасна, если будет установлен взломанный, модифицированный инсталлер, ОС блокирует то, в чем не уверена.
Исходный текст сообщения:
CAB-файл, необходимый для установки, нельзя доверять. Проверьте, что службы криптографии включены и сертификат CAB-файла действителен.
Дополнительно может быть сказано:
«Не удалось загрузить модуль initpki.dll, gpkcsp.dll, sccbase.dll, slbcsp.dll».
Причины
Довольно явно причины ошибки «нет доверия к cab-файлу» указаны в тексте сообщения. Их всего несколько:
- отключен сервис криптографии, который обязан проверять сертификаты файлов;
- служба криптографии поломана;
- установке мешают остаточные файлы от прошлой версии DirectX или .NET Framework, которые неправильным образом наслаиваются друг на друга.
Главная причина в том, что у cab-файла нет сертификата или его наличие невозможно проверить из-за отключенных служб. Отсюда вытекает – если это файл вашей разработки, нужно обратиться в компании, которые выдают сертификаты. После проверки кода у всех операционных систем появится доверие к нему.
Как исправить ошибку?
Сразу отметим, что данная ошибка чаще всего появляется в Windows 7, но этой операционной системой не ограничивается. Может появляться и в Windows 10, 11, только значительно реже. В каждом случае причины и способы исправления подобны. Рекомендуем следовать строго по инструкции, так как первые методы самые эффективные и простые в реализации. В конце идут те процедуры, которые должны сработать в более сложных ситуациях.
1) Включить службу Криптографии
Сервис криптографии важен для проверки сертификатов файлов. Однако он требуется нечасто, поэтому некоторые пользователи отключают службу, не зная о ее функциях. Порой ее выключают и программы, особенно те, которые предназначены для ускорения быстродействия системы. Такая экономия чревата невозможностью установить важный софт и проникновением в систему вирусов, лучше снова включить функцию.
Что делать, когда «нет доверия к cab файлу» при установке DirectX:
- Открываем Пуск и вводим в поиск «Панель управления», открываем единственный найденный вариант.
- Жмем на пункт «Администрирование» и выбираем «Службы».
- Если стоит сортировка по имени, листаем список практически до конца и находим «Службы криптографии».
- Делаем по ней двойной клик, нажимаем на кнопку «Запустить» и в строке «Тип запуска» выставляем значение «Автоматически».
Стоит попробовать провести установку, если сервис был выключен, она должна пройти без проблем. По крайней мере у большинства пользователей.
2) Очистить остаточные файлы DirectX перед установкой
Мы видели много упоминаний о том, что некоторым людям помогала очистка всех старых файлов, оставшихся от предыдущих версий DirectX или NET Framework. Учитывая сравнительную простоту и минимальные риски от процедуры, попробовать точно стоит.
Как исправить ошибку «нет доверия к cab-файлу»:
- Переходим по пути WindowsSystem32directx или WindowsSysWow64directx в зависимости от разрядности операционной системы Windows 7.
- Нажимаем на кнопку «Файл», затем – «Упорядочить» и жмем на пункт «Папка и параметры поиска».
- На странице «Вид» активируем флаг «Показывать скрытые файлы и папки» и кликаем по кнопке «Применить».
- Должна появиться папка websetup, открываем ее и удаляем все содержимое.
- Повторно запускаем онлайн или оффлайн установщик.
3) Восстановить службы по умолчанию Windows 7
Как мы уже упоминали, из всех правил есть исключения и их довольно много. Службы криптографии могут не запускаться или отказываться работать из-за повреждения, неправильного состояния и т. п. Однако есть способ восстановить их к состоянию по умолчанию. На Windows 7 это делается таким образом:
- Скачиваем это ПО с официального сайта Microsoft.
- Разорхивируем программу PsTools в любое удобное место.
- Перемещаем PsExec.exe в папку C:WindowsSystem32.
- Запускаем командную строку с правами администратора.
- Вводим в консоль команду psexec -i -d -s c:windowsregedit.exe. Если это первый ваш запуск инструмента, нужно выбрать вариант Agree.
- Теперь относительно сложный шаг – нужен файл servicedefaultregistryentries.reg. Его сложно найти в интернете, да и тем, что найдены, нельзя доверять (нет гарантии в безопасности). Лучший вариант, но дольше – установить такую же самую операционную систему через VirtualBox и сделать экспорт реестра.
- Открываем «Редактор реестра», для этого нажимаем Win + R, вставляем regedit и жмем Enter.
- Во вкладке «Файл» выбираем «Импорт» и указываем путь к файлу servicedefaultregistryentries.
- Перезагружаем компьютер, чтобы наверняка сработало.
4) Повторно зарегистрировать файлы DLL, связанные со службой криптографии
Если службы криптографии не запустились и даже сброс к состоянию по умолчанию не помог, скорее всего дело в ее файлах. Метод особенно актуален для тех, кто видит сообщение «Не удалось загрузить модуль initpki.dll, gpkcsp.dll, sccbase.dll, slbcsp.dll». Сейчас мы переустановим эти и другие важные dll-файлы.
Подробная инструкция:
- Жмем комбинацию Win + R, вводим cmd. Зажимаем Ctrl + Shift и нажимаем Enter, чтобы консоль запустилась с полномочиями администратора.
- Последовательно вводим следующие команды, после каждой из них нажимая клавишу Ввод (сейчас мы отменяем регистрацию перечисленных файлов):
- regsvr32 /u softpub.dll
- regsvr32 /u wintrust.dll
- regsvr32 /u initpki.dll
- regsvr32 /u dssenh.dll
- regsvr32 /u rsaenh.dll
- regsvr32 /u gpkcsp.dll
- regsvr32 /u sccbase.dll
- regsvr32 /u slbcsp.dll
- regsvr32 /u mssip32.dll
- regsvr32 /u cryptdlg.dll
- exit
- После завершения процедуры, перезагружаем компьютер и снова открываем командную строку. Снова вводим следующий ряд команд, на этот раз уже регистрируем их:
- regsvr32 softpub.dll
- regsvr32 wintrust.dll
- regsvr32 initpki.dll
- regsvr32 dssenh.dll
- regsvr32 rsaenh.dll
- regsvr32 gpkcsp.dll
- regsvr32 sccbase.dll
- regsvr32 slbcsp.dll
- regsvr32 mssip32.dll
- regsvr32 cryptdlg.dll
- exit
Пришло время снова попробовать установить DirectX или .NET Framework. Надеемся, в этот раз без ошибки «Нет доверия к cab-файлу». При условии, что перечисленные выше dll-файлы не были повреждены, инсталляция пройдет успешно. Однако и такое может быть, в этом случае придется дополнительно использовать команду sfc /scannow. Система проверит исправность файлов и восстановит их, если такая необходимость возникнет.