Код 0x80004005 в Windows - это HRESULT E_FAIL: неуточнённая ошибка. Система говорит, что операция не удалась, и не даёт более узкого статуса. Поэтому одного рецепта на все окна с 0x80004005 нет. Код всплывает в Центре обновления, при копировании файла, в установщике программы, в виртуальной машине. Это не синий экран и не 0xc0000005, хотя цифры глазом похожи.
Почему это происходит
Центр обновления. Каталог пакетов битый, служба застряла, антивирус держит файлы в SoftwareDistribution. 0x80004005 часто идёт обёрткой, рядом бывает более узкий код. Это рабочий стол, не отказ флешки на чистой установке.
Файл, архив, сеть. Нет прав, файл занят, шара отвалилась, путь слишком длинный. Проводник прячет причину за E_FAIL. Если тот же файл копируется на другой носитель - смотрите источник, не «восстановление системы».
Установщик программы. MSI, лаунчер, распаковка. Истина в журнале этого установщика: занятая библиотека, нет места, блок защитника. Это Windows Installer или свой setup, не установка Windows с флешки.
Виртуальная машина. Общая папка, снимок, сессия, которая не закрылась. Лечить это очисткой всей Windows бессмысленно.
Компоненты системы. Реже, после оборванного обновления. Тогда 0x80004005 сыпется в разных местах. Имеют смысл sfc и DISM.
Не путайте 0x80004005 с 0xc0000005. Второй - нарушение доступа к памяти в процессе. Первый - отказ вызова без уточнения. Лечение «как у доступа к памяти» здесь не работает. Не импортируйте .reg из гайдов про XP: ключей уже нет или они значат другое.
Что делать самому
- Зафиксируйте программу и действие. Обновление, копирование, setup игры, виртуальная машина. Без контекста 0x80004005 бесполезен. Скриншот окна обязателен.
- Для Центра обновления запустите средство устранения неполадок. Windows 10: «Параметры» → «Обновление и безопасность». Windows 11: «Параметры» → «Система» → «Устранение неполадок» → «Другие средства». Затем при необходимости очистите
SoftwareDistribution\Download, не всю папку и не WinSxS. - Для файлов проверьте права, длину пути и занятость. Закройте программу, скопируйте в корень другого диска. Только по сети - это шара, не Windows.
- Для установщика возьмите другой дистрибутив с сайта автора. От имени администратора. Исключение в защитнике на папку пакета, если он легальный, не отключение защиты насовсем.
- Для виртуальной машины обновите программу и дополнения гостя с официального сайта. Пересоздайте общую папку. Не ставьте «патч 0x80004005» с рекламных страниц.
- Если E_FAIL сыпется в разных местах -
sfc /scannowи DISM RestoreHealth. Это хранилище компонентов, не права на одну папку. - Не ставьте очиститель реестра. Он как раз умеет производить новые 0x80004005 на ровном месте.
Разовое E_FAIL при копировании большого файла, которое не повторилось, можно не лечить. Центр обновления на 0x80004005 неделю - сначала средство устранения и DISM, потом мысль об установке поверх. Одна игра с 0x80004005 - не повод переустанавливать Windows.
Официальное имя E_FAIL и число 0x80004005 - одно и то же. В поиске пишут «e fail» латиницей с пробелом. Отдельного кода «e fail» нет.
В Центре обновления 0x80004005 часто соседствует с более узким числом в журнале Windows Update. Смотрите журнал, не только окно параметров: там может быть 0x80073712 или 0x80248007, и тогда лечение уже по узкому коду. Сам 0x80004005 в этом случае - обёртка. В проводнике обёртки нет: права, путь, занятость. В VirtualBox - дополнения гостя и права общей папки. Три среды, один номер, три разных ремонта. Именно поэтому «универсальный .reg против 0x80004005» вреден: он трогает не ту среду.
Не отключайте контроль учётных записей, чтобы «E_FAIL прошёл». Это снимает слой защиты и не чинит занятый файл. Для одного установщика достаточно запуска от администратора.
Часто задаваемые вопросы
0x80004005 и E_FAIL - разное? Нет. Имя и число одной неуточнённой ошибки.
Это синий экран? Нет. Это отказ операции в уже работающей среде.
Похоже на 0xc0000005? Только глазом. Смысл другой: там память процесса, здесь отказ вызова.
Поможет ли очиститель реестра? Нет.
Когда проще переустановить Windows? Когда E_FAIL везде, DISM не чинит хранилище, а диск ещё живой.
