Код 0x80070002 при обновлении Windows - это HRESULT поверх ERROR_FILE_NOT_FOUND. Центр обновления, WUSA или CBS ожидали файл и не нашли его. Пакет мог недокачаться, остаться от прошлого обрыва или пропасть из WinSxS. Это не синий экран и не «отказано в доступе» (тот код 0x80070005). Рабочий стол обычно жив, в журнале обновлений красная строка с 0x80070002.
Почему это происходит
Недокачанный пакет в кэше. Сеть моргнула, место на диске кончилось, служба BITS оборвалась. В SoftwareDistribution лежит манифест, файла нет. Повтор «Проверить наличие обновлений» наступает на ту же дыру.
В WinSxS нет DLL, на которую ссылается накопительный пакет. Microsoft для серверных систем прямо разбирает 0x80070002 как отсутствие файла в журнале CBS. На домашней Windows 10 и 11 картина та же: в CBS.log строка Failed to find file и путь внутри WinSxS.
Сломанный автономный установщик. Запустили .msu через wusa.exe с флешки, файл повреждён или не той архитектуры. WUSA тоже умеет показать 0x80070002.
Кривая очистка обновлений. Удалили папку SoftwareDistribution из проводника, пока служба была запущена, или «почистили» WinSxS твикером. Следующая проверка обновлений сыплет 0x80070002.
Путают с 0x80073701 и 0x80070003. 0x80073701 - нет сборки SxS. 0x80070003 - не найден путь. 0x80070002 - не найден именно файл. Лечение рядом, но в CBS смотрят разные строки.
Не копируйте недостающий файл из чужого WinSxS по имени из лога. Версия и хеш привязаны к сборке. Чужая DLL даёт уже 0x80073712 или синий экран. Не раздавайте Everyone права на C:\Windows «чтобы файл нашёлся».
Что проверить самому
Запишите код и KB. В Windows 10: Параметры → Обновление и безопасность → Просмотр журнала. В Windows 11: Параметры → Центр обновления Windows → Журнал обновлений. Нужны 0x80070002 и имя пакета. Если код всплыл у wusa.exe - запомните, какой
.msuставили.Освободите место и повторите загрузку. На системном томе должно быть свободно не «ноль гигабайт». Очистка диска, пункт временных файлов обновления, допустима. Ручное вырезание
WinSxS- нет.Сбросьте кэш Центра обновления штатно. Остановите
wuauserv,bits,cryptsvc, переименуйтеSoftwareDistributionиCatroot2, запустите службы. Команды - из справки Microsoft. После этого проверка качает пакет заново. Часто 0x80070002 на этом и закрывается.Почините хранилище.
DISM /Online /Cleanup-Image /RestoreHealth, затемsfc /scannow. Если в CBS.log конкретный файл из WinSxS - DISM как раз умеет подтянуть его с серверов. Если DISM сам падает с 0x80070002, дайте ему официальный ISO той же редакции как /Source.Поставьте пакет вручную с каталога Microsoft. Для одного KB это нормальный путь: скачать
.msuтой же архитектуры и языка, запустить. Если wusa.exe снова даёт 0x80070002 - файл битый или не тот, качайте заново, не «лечите» его архиватором.Не правьте пути в реестре Windows Update наугад. Случайные ключи в
HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdateоставляют систему без обновлений вообще. Если после всех шагов каждый месяц новый 0x80070002, а диск в SMART жёлтый - сначала накопитель, потом Windows.
In-place с официального ISO поверх живой системы переписывает компоненты и часто закрывает хронический 0x80070002. Если и установщик не находит свои файлы - флешка или ISO битые, не «мёртвая Windows». Как собрать флешку - в отдельной инструкции.
Автономный установщик wusa.exe с тем же 0x80070002 обычно значит, что .msu недокачан или не той архитектуры. Скачайте пакет заново с каталога Microsoft, не «лечите» его архиватором. Если Центр обновления падает с 0x80070002, а ручной KB встаёт - кэш SoftwareDistribution виноват сильнее, чем WinSxS. Тогда сброс кэша достаточен, in-place не обязателен.
Часто задаваемые вопросы
0x80070002 это вирус? Нет. Это «файл не найден». Вирус мог потереть кэш, но код так не кодируется.
Чем это не 0x80070005? 0x80070005 - отказали в доступе. 0x80070002 - файла нет. Разные Win32-ошибки.
Поможет ли новая учётка? Нет. Кэш обновлений и WinSxS общие на систему.
Можно пропустить обновление? Накопительный пакет всё равно придёт. Либо чинят кэш и хранилище, либо ставят систему заново.
