В некоторых случаях обновление Windows 10 может не устанавливаться, выдавая ошибку с кодом 0x80004005. Эта же ошибка может возникать и по иным причинам, не связанным с апдейтами. Статья ниже посвящена решениям данной проблемы.
Исправляем ошибку с кодом 0x80004005
Причина проявления этого сбоя тривиальна – «Центр обновлений» не смог либо загрузить, либо установить то или иное обновление. А вот источник самой проблемы может быть разным: неполадки с системными файлами или же проблемы с самим инсталлятором обновлений. Устранить ошибку можно тремя разными методами, начнём с самого эффективного.
Если же у вас возникла ошибка 0x80004005, но она не касается обновлений, обратитесь к разделу «Другие ошибки с рассматриваемым кодом и их устранение».
Способ 1: Очистка содержимого каталога с обновлениями
Все системные апдейты устанавливаются на компьютер только после полной загрузки. Файлы обновлений загружаются в специальную временную папку и удаляются оттуда после инсталляции. В случае проблемного пакета он пытается установиться, но процесс завершается с ошибкой, и так до бесконечности. Следовательно, очистка содержимого временного каталога поможет в решении проблемы.
- Воспользуйтесь сочетанием клавиш Win+R для вызова оснастки «Выполнить». Пропишите в поле ввода следующий адрес и нажмите «ОК».
Откроется «Проводник» с каталогом всех локально загруженных обновлений. Выделите все имеющиеся файлы (с помощью мыши или клавиш Ctrl+A) и удалите их любым подходящим способом – например, через контекстное меню папки.
После загрузки компьютера проверьте наличие ошибки – скорее всего, она исчезнет, поскольку «Центр обновлений» загрузит на этот раз корректную версию апдейта.
Способ 2: Ручная загрузка обновлений
Чуть менее эффективный вариант устранения рассматриваемого сбоя заключается в ручной загрузке обновления и его установке на компьютер. Подробности процедуры освещены в отдельном руководстве, ссылка на которое находится ниже.
Способ 3: Проверка целостности системных файлов
В некоторых случаях проблемы с обновлениями вызваны повреждением того или иного системного компонента. Решение заключается в проверке целостности системных файлов и их восстановлении, если таковое потребуется.
Другие ошибки с рассматриваемым кодом и их устранение
Ошибка с кодом 0x80004005 возникает также по иным причинам. Рассмотрим самые частые из них, а также методы устранения.
Ошибка 0x80004005 при попытке доступа к сетевой папке
Эта ошибка возникает вследствие особенностей работы новейших версий «десятки»: из соображений безопасности по умолчанию отключены несколько устаревших протоколов соединения, а также некоторые компоненты, которые отвечают за сетевые возможности. Решением проблемы в этом случае будет правильная настройка сетевого доступа и протокола SMB.
Ошибка 0x80004005 при попытке доступа к Microsoft Store
Довольно редкий сбой, причина которого заключается в ошибках взаимодействия брандмауэра Windows 10 и Магазина приложений. Устранить эту неисправность достаточно просто:
-
Вызовите «Параметры» — легче всего это проделать с помощью сочетания клавиш Win+I. Найдите пункт «Обновления и безопасность» и кликните по нему.
Воспользуйтесь меню, в котором щёлкните по позиции «Безопасность Windows».
Далее выберите «Брандмауэр и защита сети».
Прокрутите страницу чуть вниз и воспользуйтесь ссылкой «Разрешить работу с приложением через брандмауэр».
Откроется список программ и компонентов, которые так или иначе задействуют системный файервол. Для внесения изменений в этот список воспользуйтесь кнопкой «Изменить параметры». Обратите внимание, что для этого требуется учётная запись с полномочиями администратора.
Урок: Управление правами учетной записи в Windows 10
Перезагрузите машину и попробуйте зайти в «Магазин» — проблема должна быть решена.
Заключение
Мы убедились, что ошибка с кодом 0x80004005 наиболее характерна для некорректного обновления Windows, однако может возникать и по другим причинам. Также мы познакомились с методами устранения этой неисправности.
Отблагодарите автора, поделитесь статьей в социальных сетях.
13 марта Microsoft опубликовал описание уязвимости CVE-2018-0886 в протоколе проверки подлинности CredSSP, который в частности используется при подключении по RDP к терминальным серверам. Позже Microsoft опубликовал, что будет блокировать подключения к необновлённым серверам, где присутствует данная уязвимость. В связи с чем многие заказчики столкнулись с проблемами подключения по RDP.
В частности, в Windows 7 можно увидеть ошибку: "Произошла ошибка проверки подлинности. Указанная функция не поддерживается"
В Windows 10 ошибка расписана более подробно, в частности сказано "Причиной ошибки может быть исправление шифрования CredSSP":
Для обхода ошибки со стороны клиента многие советуют отключить групповую политику, путём установки значения Encryption Oracle Remediation в Vulnerable:
с помощью gpedit.msc в Конфигурация компьютера / Административные шаблоны / Система / Передача учётных данных, слева выбрать "Исправление уязвимости шифрующего оракула" (забавный конечно перевод), в настройках поставить "Включено" и выбрать "Оставить уязвимость".
или через реестр (т.к., например, в Windows Home нет команды gpedit.msc):
REG ADD HKLMSoftwareMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters /v AllowEncryptionOracle /t REG_DWORD /d 2
НО! Так делать не нужно! Т.к. таким образом вы оставляете уязвимость и риски перехвата вашего трафика и пр. конфиденциальные данные, включая пароли. Единственный случай, когда это может быть необходимо, это когда у вас вообще нет другой возможности подключиться к удалённому серверу, кроме как по RDP, чтобы установить обновления (хотя у любого облачного провайдера должна быть возможность подключения к консоли сервера). Сразу после установки обновлений, политики нужно вернуть в исходное состояние.
Если доступ к удалённому серверу есть, то ещё, как временная мера, можно отключить требование NLA (Network Level Authentication), и сервер перестанет использовать CredSSP. Для этого достаточно в Свойствах системы, на вкладке удалённые подключения снять соответствующую галку "Разрешить подключения только с компьютеров, на которых работает удалённый рабочий стол с проверкой подлинности на уровне сети":
Но, это тоже неправильный подход.
Правильный подход – это всего-лишь установить нужные обновления на операционную систему, закрывающие уязвимость CVE-2018-0886 в CredSSP, причём, как серверную, куда вы подключаетесь, так и клиентскую, с которой вы подключаетесь.
После установки обновления KB4103718 на моем компьютере с Windows 7 я не могу удаленно подключится к серверу c Windows Server 2012 R2 через удаленный рабочий стол RDP. После того, как я указываю адрес RDP сервера в окне клиента mstsc.exe и нажимаю «Подключить», появляется ошибка:
Произошла ошибка проверки подлинности.
Указанная функция не поддерживается.
Удаленный компьютер: computername
После того, как я удалил обновление KB4103718 и перезагрузил компьютер, RDP подключение стало работать нормально. Если я правильно понимаю, это только временное обходное решение, в следующем месяце приедет новый кумулятивный пакет обновлений и ошибка вернется? Можете что-нибудь посоветовать?
Ответ
Вы абсолютно правы в том, что бессмысленно решать проблему удалением обновлений Windows, ведь вы тем самым подвергаете свой компьютер риску эксплуатации различных уязвимостей, которые закрывают патчи в данном обновлении.
В своей проблеме вы не одиноки. Данная ошибка может появится в любой операционной системе Windows или Windows Server (не только Windows 7). У пользователей английской версии Windows 10 при попытке подключится к RDP/RDS серверу аналогичная ошибка выглядит так:
The function requested is not supported.
Remote computer: computername
Ошибка RDP “An authentication error has occurred” может появляться и при попытке запуска RemoteApp приложений.
Почему это происходит? Дело в том, что на вашем компьютере установлены актуальные обновления безопасности (выпущенные после мая 2018 года), в которых исправляется серьёзная уязвимость в протоколе CredSSP (Credential Security Support Provider), использующегося для аутентификации на RDP серверах (CVE-2018-0886) (рекомендую познакомится со статьей Ошибка RDP подключения: CredSSP encryption oracle remediation). При этом на стороне RDP / RDS сервера, к которому вы подключаетесь со своего компьютера, эти обновления не установлены и при этом для RDP доступа включен протокол NLA (Network Level Authentication / Проверку подлинности на уровне сети). Протокол NLA использует механизмы CredSSP для пре-аутентификация пользователей через TLS/SSL или Kerberos. Ваш компьютер из-за новых настроек безопасности, которые выставило установленное у вас обновление, просто блокирует подключение к удаленному компьютеру, который использует уязвимую версию CredSSP.
Что можно сделать для исправления эту ошибки и подключиться к вашему RDP серверу?
- Самый правильный способ решения проблемы – установка последних кумулятивных обновлений безопасности Windows на компьютере / сервере, к которому вы подключаетесь по RDP;
- Временный способ 1 . Можно отключить проверку подлинности на уровне сети (NLA) на стороне RDP сервера (описано ниже);
- Временный способ 2 . Вы можете на стороне клиента разрешить подключение к RDP серверам с небезопасной версией CredSSP, как описано в статье по ссылке выше. Для этого нужно изменить ключ реестра AllowEncryptionOracle (команда REG ADD
HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters /v AllowEncryptionOracle /t REG_DWORD /d 2 ) или изменить настройки локальной политики Encryption Oracle Remediation / Исправление уязвимости шифрующего оракула), установив ее значение = Vulnerable / Оставить уязвимость).
Отключение NLA для протокола RDP в Windows
Если на стороне RDP сервера, которому вы подключаетесь, включен NLA, это означает что для преаутентификации RDP пользователя используется CredSPP. Отключить Network Level Authentication можно в свойствах системы на вкладке Удаленный доступ (Remote), сняв галку «Разрешить подключения только с компьютеров, на которых работает удаленный рабочий стол с проверкой подлинности на уровне сети / Allow connection only from computers running Remote Desktop with Network Level Authentication (recommended)» (Windows 10 / Windows 8).
В Windows 7 эта опция называется по-другому. На вкладке Удаленный доступ нужно выбрать опцию «Разрешить подключения от компьютеров с любой версией удаленного рабочего стола (опасный) / Allow connections from computers running any version of Remote Desktop (less secure)».
Также можно отключить проверку подлинности на уровне сети (NLA) с помощью редактора локальной групповой политики — gpedit.msc (в Windows 10 Home редактор политик gpedit.msc можно запустить так) или с помощью консоли управления доменными политиками – GPMC.msc. Для этого перейдите в разделе Конфигурация компьютера –> Административные шаблоны –> Компоненты Windows –> Службы удаленных рабочих столов – Узел сеансов удаленных рабочих столов –> Безопасность (Computer Configuration –> Administrative Templates –> Windows Components –> Remote Desktop Services – Remote Desktop Session Host –> Security), отключите политику Требовать проверку подлинности пользователя для удаленных подключений путем проверки подлинности на уровне сети (Require user authentication for remote connections by using Network Level Authentication).
Также нужно в политике «Требовать использования специального уровня безопасности для удаленных подключений по протоколу RDP» (Require use of specific security layer for remote (RDP) connections) выбрать уровень безопасности (Security Layer) — RDP.
Для применения новых настроек RDP нужно обновить политики (gpupdate /force) или перезагрузить компьютер. После этого вы должны успешно подключиться к удаленному рабочему столу сервера.