Ошибка 0x8007007E в Windows 11 и 10 — решение

Ошибка 0x8007007E и способы её исправитьПри обновлении Windows 11/10, запуске программ и игр или в процессе их работы, иногда — при использовании системных утилит, пользователи могут столкнуться с сообщением об ошибке с кодом 0x8007007E. Описания могут разниться, но чаще всего есть указание вида «Не найден указанный модуль».

В этой инструкции подробно о том, что именно вызывает такую ошибку и способы её исправить, если вы с ней столкнулись.

При обновлении

Ошибка 0x8007007E при обновлении Windows

Если ошибка 0x8007007E при установке обновлений Windows 11/10, обычно это говорит об одном из:

  • Повреждение системных файлов ОС
  • Повреждение самих компонентов обновлений

Обращаясь к какому-то из файлов (обычно — библиотека DLL), необходимых для продолжения установки обновления система не «видит» его или файл повреждён, результат — рассматриваемая ошибка.

Подход к решению простой — восстановление системных файлов Windows, очистка кэша обновлений и повторная установка. Шаги будут следующими:

  1. Запустите командную строку от имени Администратора.
  2. По порядку выполните команды (первая может «зависать» в процессе, дождитесь выполнения):
    dism /online /cleanup-image /restorehealth
    sfc /scannow
  3. По порядку выполните команды:
  4. Обязательно перезагрузите компьютер и попробуйте выполнить установку обновления снова.

Если это не помогло, вы можете:

Примечание: всё это актуально для оригинальных систем, где обновления изначально работали исправно, в некоторых случаях причина может заключаться в излишне «оптимизированных сборках», которые могли работать исправно ранее, но когда для очередного обновления потребовался вырезанный компонент, оно не смогло установиться.

При запуске или работе программ и игр

Сообщение об ошибке HRESULT 0x8007007E Не найден указанный модуль

Второй вариант — появление сообщения об ошибке с HRESULT 0x8007007E «Не найден указанный модуль» (конкретный текст сообщения об ошибке может отличаться) при запуске определённых программ или доступе к конкретным функциям в них.

Причина — та же, что и в предыдущем случае: программа пробует загрузить какую-то DLL, но ней это не удаётся.

Отличие от более привычного сообщения «Не удается продолжить выполнение кода, поскольку система не обнаружила имя.DLL» вызвано тем, что в случае ошибки 0x8007007E запуск исполняемого файла был выполнен успешно, но, когда (уже после запуска) он обратился к нужному файлу, найти его не удалось. В «стандартном» же сообщении не удалось выполнить запуск самого исполняемого файла из-за отсутствия DLL.

Если вы сталкиваетесь с ошибкой при работе с каким-то системным инструментом Windows 11/10: его запуске или использовании определённой функции, начать следует с тех же действий, что и для ошибки обновления:

  1. Запустить командную строку от имени администратора и по порядку выполнить команды
    dism /online /cleanup-image /restorehealth
    sfc /scannow
  2. Если это не помогло, а проблема возникла недавно, могут помочь точки восстановления системы на дату, когда всё работало исправно.

В случае сторонних игр и программ, простыми решениями будут следующие:

  1. Если это «не совсем лицензионный» софт, проверьте журнал и карантин вашего антивируса: возможно, нужная DLL была удалена. Решение — её восстановление, возможно — добавление папки с программой в исключения антивируса, если восстановление невозможно, может потребоваться переустановка программы.
  2. Часто ошибка «упирается» в отсутствие нужных версий компонентов Visual C++ Redistributable. Их можно установить сразу все с помощью установщика AIO с этой страницы GitHub — для x64 системы выберите вариант установщика, содержащий x86 и x64 версии компонентов.

Эти два шага помогают в большинстве случаев, но не всегда: они направлены на наиболее вероятных «виновников», но не всегда причина именно в них.

Определение недостающего модуля

Если приведённые выше шаги не сработали, и программа всё так же сообщает об ошибке, вы можете выяснить, какой (или каких) именно DLL не хватает, достаточно выполнить следующие шаги:

  1. Скачайте Process Monitor с официального сайта Майкрософт, распакуйте архив в удобное расположение и запустите подходящую версию (обычно — x64) от имени администратора.
  2. Нажмите по кнопке фильтра в панели инструментов и укажите фильтр: Process Name is имя_исполняемого_файла then Include, нажмите, «Add», затем — «Ok» и подтвердите действие. Добавление фильтра в Process Monitor
  3. Запустите программу и сделайте так, чтобы появилось сообщение об ошибке 0x8007007E (если это требует каких-то конкретных действий, а не простого запуска).
  4. Изучите события в Process Monitor. Вас будут интересовать пункты, где в столбце Path указан путь к DLL (программа ищет нужный файл DLL в различных стандартных расположениях), а в Result — Name Not Found (имя не найдено). Определение модуля, который не был найден в Process Monitor
  5. По имени DLL (если оно ни о чём не говорит, выполните поиск в Интернете) вы сможете определить, чего именно не хватает: какого-то системного компонента, библиотеки самой программы или чего-то ещё и постараться разобраться с этой конкретной DLL.

Надеюсь, инструкция помогла разобраться и решить проблему. Если же нет, опишите ситуацию в комментариях ниже, я постараюсь помочь.

Комментарии (1) к Ошибка 0x8007007E в Windows 11 и 10 — решение

  • Мимо

    Я просто обновление удалил и прошло.
    Ставлю пакет — опять появляется. Отключил обновления пока не пофиксят.

    Ответить

Оставить комментарий

Нажимая кнопку «Отправить», вы даете согласие на обработку персональных данных и соглашаетесь с Политикой конфиденциальности.
Интересное
Новое
Список инструкций Windows 11 Windows 10 Подписаться