1

У меня странная проблема, которую я надеюсь описать должным образом. Все произошло, когда я решил обновить Windows 7 Home.

Проблема в том, что при перезагрузке сразу после обновления Windows я получаю страшный "отсутствующий или поврежденный файл". Файл, о котором мы говорим, это cng.sys.

Я пользователь Linux, поэтому первым делом я открыл раздел NTFS и проверил, был ли там файл. Не было. Затем я прошел стандартную процедуру восстановления Windows.

  • Консоль восстановления, позволяющая решить проблему. Это не могло
  • Консоль восстановления с командной строкой "sfc /scannow /offbootdir = /winbootdir =", но она сообщила мне, что обновление было отложено и не может.
  • Переименование pending.xml в pending.bak и sfc снова. Он не мог исправить файлы, даже если мог найти проблемы.

В этот момент я обнаружил папку winsxs со всеми обновлениями в ней. Я зарегистрировался в pending.xml и увидел, что cng.sys фактически был запланирован для удаления и замены (и тегов). Я попытался удалить раздел pending.xml, где он ссылался на cng.sys. Это не сработало. Затем я вошел в папку обновления, чтобы увидеть, был ли там новый cng.sys.

Ну ... похоже, что существует много папок с одинаковым именем и разной датой создания, содержащих этот файл. Последний (по дате) содержит cng.sys ... но это 0 Кб !!! Это на самом деле не связано с тем, что файла в моих Windows/System32/drivers нет, но я решил взять старый файл cng.sys из старых обновлений и скопировать его.

Результатом стала ошибка 0xc0000020 AKA «Проверка KnownDll не удалась ....».

Я думаю, у меня есть два способа решить без переустановки:

  1. Переопределите проверку для KnownDll(s). Это даже то, что он делает?
  2. Вернуть обновление?

Все это должно быть выполнимо в консоли восстановления. Я думаю, что где-то видел вызов командной строки какой-то утилиты Windows для отмены обновлений ... но я больше не могу ее найти ...

Большое спасибо! Kap


ОБНОВЛЕНИЕ3: Я все еще пытаюсь заставить это работать ...У меня работает Linux, и это не очень актуально на данный момент ... вот список файлов, которые мне не хватает (они 0 байт)... У вас, ребята, есть какие-то подсказки, как я могу их получить?

./amd64_microsoft-windows-lsa_31bf3856ad364e35_6.1.7601.17940_none_044c26dd7386a58a/cng.sys ./amd64_microsoft-windows-lsa_31bf3856ad364e35_6.1.7601.22099_none_04a88ce28cc4eb33/cng.sys ./amd64_microsoft-windows-lsa_31bf3856ad364e35_6.1.7601.22099_none_04a88ce28cc4eb33/sspicli.dll ./amd64_microsoft-windows-ncrypt-dll_31bf3856ad364e35_6.1.7601.22099_none_bc3c57b22195c1a0/ncrypt.dll ./amd64_microsoft.vc90.mfc_1fc8b3b9a1e18e3b_9.0.30729.1_none_951ab4128654b0c9/mfcm90.dll ./amd64_microsoft.vc90.mfc_1fc8b3b9a1e18e3b_9.0.30729.1_none_951ab4128654b0c9/mfcm90u.dll ./Backup/amd64_microsoft-windows-lsa_31bf3856ad364e35_6.1.7601.17940_none_044c26dd7386a58a_cng.sys_050526ad ./Backup/wow64_microsoft-windows-lsa_31bf3856ad364e35_6.1.7601.17940_none_0ea0d12fa7e76785_sspicli.dll_bcec1809 ./x86_microsoft-windows-sechost.resources_31bf3856ad364e35_6.1.7600.16385_en-us_dcf8b806907609b7/sechost.dll.mui ./wow64_microsoft-windows-lsa_31bf3856ad364e35_6.1.7601.17940_none_0ea0d12fa7e76785/sspicli.dll

Кстати, команда linux, которую я выполнил:find . -name '*' -type f -size 0 > log.txt

1 ответ1

1

Поскольку эта проблема возникает при запуске, вы можете попробовать Startup Repair, которая устраняет большинство проблем при запуске.

Чтобы получить доступ к этому инструменту, перезагрузите компьютер, нажимая клавишу F8, пока не откроется меню «Дополнительные параметры запуска». Выберите « Восстановить компьютер», а затем « Восстановление при загрузке».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .