У меня странная проблема, которую я надеюсь описать должным образом. Все произошло, когда я решил обновить 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 не удалась ....».
Я думаю, у меня есть два способа решить без переустановки:
- Переопределите проверку для KnownDll(s). Это даже то, что он делает?
- Вернуть обновление?
Все это должно быть выполнимо в консоли восстановления. Я думаю, что где-то видел вызов командной строки какой-то утилиты 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