Гид по технологиям

Исправление ошибки обновления Windows 10 0xc1800118 — пошаговое руководство

5 min read Windows Обновлено 01 Dec 2025
Исправить ошибку 0xc1800118 в Windows 10
Исправить ошибку 0xc1800118 в Windows 10

Экран с ошибкой обновления Windows 10 и служба WSUS

О чём эта статья

Это практическое руководство по диагностике и устранению ошибки установки обновлений Windows 10 с кодом 0xc1800118 при работе через WSUS или автономную установку. Приведены последовательные команды PowerShell и SQL-запросы, пояснения, контрольный список для администратора и варианты обхода.

Важно: приведённые команды корректируют базу WSUS и удаляют ранее синхронизированные файлы. Выполняйте на верхнем (upstream) сервере WSUS и предварительно делайте резервную копию базы данных.

Что означает ошибка 0xc1800118

Ошибка обычно возникает, когда пакет обновления версия 1607 помечен как зашифрованный в одном месте, но его запись в таблице WSUS (SUSDB) не содержит ключа дешифрования (DecryptionKey), либо обновления были синхронизированы до применения исправления KB3159706. В результате клиент или сервер не могут корректно обработать пакет и установка прерывается с кодом 0xc1800118.

Короткое определение: 0xc1800118 — несогласованность статуса шифрования файла обновления в базе WSUS.

Перед началом — подготовка

  • Сделайте резервную копию SUSDB (базы WSUS). Если у вас кластер резервного копирования — сохраните копию перед изменениями.
  • Выполняйте операции с правами администратора на сервере WSUS (локально или по RDP).
  • Операции удаления и синхронизации могут занимать много времени; планируйте окно обслуживания.

Пошаговое исправление ошибки 0xc1800118

1. Определите, в плохом ли состоянии WSUS

Запустите SQL-запрос к базе SUSDB (через SQL Server Management Studio или sqlcmd). Если результат TotalResults > 0 — есть проблемные файлы.

select TotalResults = Count(*)
from tbFile
where (IsEncrypted = 1 and DecryptionKey is NULL)
  or (FileName like '%14393%.esd' and IsEncrypted = 0)

Пояснение: запрос ищет файлы, помеченные как зашифрованные без ключа дешифрования, а также файлы ESD с номеров сборки 14393 (версия 1607), которые помечены как незашифрованные — это индикатор рассинхронизации.

2. Отключите классификацию “Upgrades”

Чтобы предотвратить повторную синхронизацию проблемных пакетов, временно отключите классификацию “Upgrades” в WSUS (в английской локализации эта классификация называется “Upgrades”). Выполните в PowerShell на сервере WSUS:

Get-WsusClassification | Where-Object {$_.Classification.Title -eq "Upgrades"} | Set-WsusClassification -Disable

После выполнения проверьте, что классификация действительно отключена в консоли WSUS.

3. Удалите ранее синхронизированные пакеты обновлений версии 1607

Выполните на верхнем сервере WSUS следующие команды PowerShell. Операция удаления может длиться больше 30 минут на больших инсталляциях — PowerShell может выглядеть «зависшим», просто дождитесь завершения.

$s = Get-WsusServer
$version1607Updates = $s.SearchUpdates("version 1607")
$version1607Updates | ForEach-Object { $_.Decline() }
$version1607Updates | ForEach-Object { $s.DeleteUpdate($_.Id.UpdateId) }

Примечание: строка поиска “version 1607” предназначена для англоязычных заголовков. Для других локализаций замените текст на соответствующий заголовок обновления на вашем языке.

Важно: не прерывайте команду удаления; большая база и множество записей требуют времени.

4. Включите классификацию “Upgrades” обратно

После удаления проверьте, что проблемных пакетов больше нет, затем снова включите классификацию:

Get-WsusClassification | Where-Object {$_.Classification.Title -eq "Upgrades"} | Set-WsusClassification

5. Удалите записи файлов из таблицы tbFile в SUSDB

Если шаги выше не решили проблему, удалите записи файлов, соответствующих проблемным пакетам, из таблицы tbFile. Выполните следующий блок SQL (на верхнем сервере WSUS):

declare @NotNeededFiles table (FileDigest binary(20) UNIQUE);

insert into @NotNeededFiles(FileDigest)
(select FileDigest from tbFile where FileName like '%14393%.esd' except select FileDigest from tbFileForRevision);

delete from tbFileOnServer where FileDigest in (select FileDigest from @NotNeededFiles);

delete from tbFile where FileDigest in (select FileDigest from @NotNeededFiles);

Пояснение: сначала формируется набор ненужных файлов (по совпадению имени и отсутствию ревизий), затем удаляются их связи с серверами и сами записи файлов.

6. Выполните полную синхронизацию WSUS

После очистки таблиц запустите синхронизацию:

$sub = $s.GetSubscription()
$sub.StartSynchronization()

Дождитесь завершения синхронизации и проверьте в консоли WSUS — новые записи должны появиться корректно.

7. Если ошибка остаётся — остановите службу Windows Update и очистите локальную папку

На клиенте или на сервере, где ошибка всё ещё проявляется, выполните в командной строке от администратора:

net stop wuauserv
del /f /s /q %windir%\SoftwareDistribution\DataStore\*
net start wuauserv

Альтернатива: можно переименовать папку SoftwareDistribution вместо удаления, если вы предпочитаете сохранить резервную копию.

8. Сканирование и проверка

Запустите проверку обновлений (Windows Update или принудительную регистрацию клиента с WSUS). Убедитесь, что обновления загружаются и устанавливаются без ошибки 0xc1800118.

Что делать, если ничего не помогло

  • Проверьте, применён ли фикc KB3159706 на серверах синхронизации (если применимо).
  • Рассмотрите возможность полного удаления проблемных пакетов из консоли WSUS вручную и повторной синхронизации с Microsoft Update.
  • Как крайняя мера — восстановите SUSDB из резервной копии до момента появления ошибки и повторите процесс корректно.

Альтернативные подходы и рекомендации

  • Временно исключите клиентов из одного линейного цикла обновлений и обновите критические машины вручную.
  • Если у вас Distributed File Share (DFS) для контента WSUS, проверьте консистентность реплик файлов на всех уровнеях.
  • Если WSUS управляется SCCM/ConfigMgr, проверьте политики и распределение пакетов через узел управления.

Модель принятия решений (flowchart)

flowchart TD
  A[Появилась ошибка 0xc1800118] --> B{Проблема на WSUS?
'проверить SQL-запрос'}
  B -- Да --> C[Отключить 'Upgrades']
  C --> D[Удалить пакеты 1607]
  D --> E[Удалить записи из tbFile]
  E --> F[Запустить полную синхронизацию]
  F --> G{Ошибка исчезла?}
  G -- Да --> H[Наблюдать систему]
  G -- Нет --> I[Остановить wuauserv на клиентах и очистить SoftwareDistribution]
  I --> J[Повторить проверку]
  B -- Нет --> K[Проверить клиентские журналы WindowsUpdate.log и события]

Контрольный список для ролей

  • Для администратора WSUS:

    • Резервная копия SUSDB сделана
    • Отключена классификация “Upgrades”
    • Выполнено удаление пакетов 1607
    • Удалены записи из tbFile
    • Запущена полная синхронизация
    • Включена классификация обратно
  • Для специалиста службы поддержки (helpdesk):

    • Остановлен wuauserv и очищена папка SoftwareDistribution (если требуется)
    • Проведена проверка обновлений на клиенте
    • При необходимости — переведён клиент на ручную установку обновлений

Критерии приёмки

  • В консоли WSUS запрос к tbFile не возвращает проблемных записей (TotalResults = 0).
  • Клиенты успешно загружают и устанавливают обновления без кода 0xc1800118.
  • Логи WindowsUpdate и серверные журналы WSUS не содержат повторяющихся ошибок связанных с ESD-файлами версии 14393.

Частые ошибки и когда метод может не сработать

  • Если проблема возникла из-за повреждённого контента на стороне Microsoft Update (редко), локальные манипуляции с SUSDB не помогут — нужно дождаться исправления на стороне сервиса или обратиться в поддержку Microsoft.
  • Если используется сторонний прокси/антивирус, блокирующий загрузку контента, устраните это прежде, чем повторять синхронизацию.

Быстрый справочник (cheat sheet)

  • Проверка состояния: SQL-запрос к tbFile (см. выше).
  • Отключение классификации: PowerShell Get-WsusClassification … Set-WsusClassification -Disable.
  • Удаление пакетов: $s = Get-WsusServer; $s.SearchUpdates(“version 1607”) … DeleteUpdate.
  • Очистка клиента: net stop wuauserv; del %windir%\SoftwareDistribution\DataStore*; net start wuauserv.

Резюме

Ошибка 0xc1800118 чаще всего связана с несогласованностью статуса шифрования файлов обновлений в базе WSUS. Последовательность: определить проблемные записи, временно отключить классификацию “Upgrades”, удалить синхронизированные пакеты версии 1607, очистить таблицы tbFile и выполнить полную синхронизацию — решает большинство случаев. Если после этого проблема остаётся, очистка локальной папки SoftwareDistribution и анализ логов помогут локализовать проблему.

Важно: все операции с базой данных и удалением контента выполняйте в окне обслуживания и после создания резервной копии SUSDB.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Choicejacking — защита телефона при зарядке
Кибербезопасность

Choicejacking — защита телефона при зарядке

Как вернуть игру на GOG — инструкция
Игры

Как вернуть игру на GOG — инструкция

ARC Welder: запуск Android‑приложений в Chrome
Руководства

ARC Welder: запуск Android‑приложений в Chrome

OpenDNS: настройка и защита сети
Сеть

OpenDNS: настройка и защита сети

Game Dashboard в Android 12: включение и советы
Android.

Game Dashboard в Android 12: включение и советы

Listmonk на Ubuntu — установка через Docker
DevOps

Listmonk на Ubuntu — установка через Docker