Недавно я установил новую версию Windows 7 Ultimate x64 на свой ноутбук, и Центр обновления Windows успешно обновил систему до SP1. Однако теперь Центр обновления Windows работает вечно, не найдя никаких обновлений. Он работал почти 24 часа в первый раз, когда я запускал его после установки пакета обновления, но панель поиска просто непрерывно прокручивается без каких-либо обновлений.
Вот то, что я пытался до сих пор.
Первая попытка
Сначала я следовал инструкциям в KB 971058 и загрузил автоматический инструмент "FixIt" WindowsUpdateDiagnostic.diagcab. Я запустил это как администратор и получил это сообщение:
Код ошибки Windows Update error 0x80070005
является ошибкой "Отказано в доступе", согласно этой странице. Странно то, что, если я нажимаю "Просмотр подробной информации", инструмент сообщает, что ошибка была исправлена; см. изображение ниже.
Вторая попытка
Я перезагрузился и снова запустил Центр обновления Windows. После 6 часов безуспешно (панель поиска все еще работает) я отменил его. На всякий случай я запустил средство проверки системных файлов из командной строки с повышенными привилегиями, чтобы проверить, не было ли поврежденных файлов:
sfc /scannow
но там сказано: "Защита ресурсов Windows не обнаружила никаких нарушений целостности", поэтому все выглядит нормально.
Третья попытка
Другая ссылка Microsoft предложила другой инструмент FixIt, поэтому я скачал его («MicrosoftFixit50123.msi»), но это, по-видимому, просто универсальный инструмент Fixit. Я запускаю MSI, и он показывает мне это:
Кнопки ведут к общим ссылкам Microsoft, но ничего особенного для обновления Windows.
Четвертая попытка
После очередной перезагрузки и еще одного часа, пока Windows не завершила поиск обновлений, я решил, что пришло время следовать инструкциям, приведенным в KB 971058. Я открыл командную строку с повышенными правами и выполнил следующие действия:
Остановите службу BITS, службу Центра обновления Windows и службу криптографии.
net stop bits net stop wuauserv net stop appidsvc net stop cryptsvc
BITS и appidsvc не работали (может, в этом проблема?) но два других были успешно остановлены.
Удалите файлы qmgr * .dat:
Del "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat"
Нет проблем на этом этапе.
Переименуйте резервные копии папки распространения программного обеспечения
Ren %systemroot%\SoftwareDistribution SoftwareDistribution.bak Ren %systemroot%\system32\catroot2 catroot2.bak
Сбросьте службу BITS и службу Центра обновления Windows на дескриптор безопасности по умолчанию.
sc.exe sdset bits D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU) sc.exe sdset wuauserv D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)
Обе эти команды вернули
[SC] SetServiceObjectSecurity SUCCESS
.Перейдите в каталог system32 и заново зарегистрируйте файлы BITS и Windows Update.
regsvr32.exe atl.dll regsvr32.exe urlmon.dll regsvr32.exe mshtml.dll * regsvr32.exe shdocvw.dll * regsvr32.exe browseui.dll * regsvr32.exe jscript.dll regsvr32.exe vbscript.dll regsvr32.exe scrrun.dll regsvr32.exe msxml.dll ** regsvr32.exe msxml3.dll regsvr32.exe msxml6.dll regsvr32.exe actxprxy.dll regsvr32.exe softpub.dll regsvr32.exe wintrust.dll regsvr32.exe dssenh.dll regsvr32.exe rsaenh.dll regsvr32.exe gpkcsp.dll ** regsvr32.exe sccbase.dll ** regsvr32.exe slbcsp.dll ** regsvr32.exe cryptdlg.dll regsvr32.exe oleaut32.dll regsvr32.exe ole32.dll regsvr32.exe shell32.dll regsvr32.exe initpki.dll ** regsvr32.exe wuapi.dll regsvr32.exe wuaueng.dll regsvr32.exe wuaueng1.dll ** regsvr32.exe wucltui.dll ** regsvr32.exe wups.dll regsvr32.exe wups2.dll regsvr32.exe wuweb.dll ** regsvr32.exe qmgr.dll * regsvr32.exe qmgrprxy.dll regsvr32.exe wucltux.dll regsvr32.exe muweb.dll ** regsvr32.exe wuwebv.dll
Команды, помеченные одной звездочкой, завершились с ошибкой:
Модуль "module_name.dll" был загружен, но точка входа DllRegisterServer не найдена. Убедитесь, что «module_name.dll» является допустимым файлом DLL или OCX, и повторите попытку.
Команды, помеченные двумя звездочками, завершились с ошибкой:
Модуль "module_name.dll" не удалось загрузить. Убедитесь, что двоичный файл хранится по указанному пути, или отладьте его, чтобы проверить наличие проблем с двоичным или зависимым файлом.DLL файлы. Указанный модуль не может быть найден.
Сброс Winsock
netsh winsock reset
Эта команда выводит
Успешно сбросить каталог Winsock. Вы должны перезагрузить компьютер для завершения сброса.
поэтому я перезагрузился. После перезагрузки я выполнил следующую команду в списке:
netsh winhttp reset proxy
Затем я перезапустил все службы, которые были остановлены ранее:
net start bits net start wuauserv net start appidsvc net start cryptsvc
Я перезагрузился снова и запустил Центр обновления Windows. Тот же результат. Я позволил ему работать в течение двух часов, но он продолжал искать обновления, поэтому я разместил здесь.
Я чувствую, что перепробовал все. Диск Windows, который я использовал для установки, является подлинным, и я использовал его, чтобы делать новые установки на этот ноутбук раньше, без подобных ошибок. Что еще я могу попробовать? Прошу прощения за комментарий, но после всего этого я в полном восторге от Центра обновления Windows и почти полностью потерял терпение.
Я также запустил полное сканирование системы на наличие вредоносных программ, используя Microsoft Security Essentials, который ничего не обнаружил, поэтому вряд ли это связано с вредоносными программами.