Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

0x8007371b Windows Server

Ошибка 0x8007371b при обновлении Windows: Повреждение хранилища компонентов

Обновлено: 09.09.2026 · Официальная документация ↗

Транзакционная модель CBS и ошибка SXS

Код 0x8007371b переводится как ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE. Операционная система Windows (начиная с Vista) устанавливает системные обновления и компоненты с использованием строгой транзакционной модели (аналогично транзакциям в СУБД SQL). Механизм Component Based Servicing (CBS) записывает изменения в хранилище WinSxS. Если транзакция не может быть корректно завершена (Commit) — например, процесс TrustedInstaller был внезапно 'убит', часть реестра заблокирована антивирусом, или файл в WinSxS поврежден (NTFS corruption), система оставляет транзакцию 'незавершенной'. При следующей попытке обновления CBS видит 'грязную' транзакцию и отменяет установку с ошибкой 0x8007371b. Бизнес-риски: полная невозможность устанавливать любые будущие накопительные обновления (CU).

Механизмы коррупции транзакций

Фактор сбояВлияние на CBS/WinSxSПоследствия (Логи CBS.log)
Сбой питания при установкеСистема уходит в ребут во время 'Working on updates 50%'. Pending.xml остается в 'грязном' состоянии.CBS: Failed to resolve execution chain.
Антивирусы (EDR)Драйвер EDR (File System Filter) блокирует доступ TrustedInstaller к файлу в WinSxS на этапе Commit.STATUS_ACCESS_DENIED внутри транзакции SXS.
Очистка реестра (Твикеры)Удаление 'сиротских' ключей в ветке HKLM\COMPONENTS разрушает связи манифестов.CBS: Failed to load identity/manifest.

Алгоритм очистки и восстановления транзакций CBS

Сценарий 1: Очистка незавершенных операций (StartComponentCleanup)

Первый шаг — попытаться заставить DISM 'сбросить' зависшие транзакции и очистить мусор в хранилище компонентов.

 Запуск от имени Администратора
DISM.exe /Online /Cleanup-Image /StartComponentCleanup

 Если команда завершается успешно, запускаем стандартное восстановление:
DISM.exe /Online /Cleanup-Image /RestoreHealth
sfc /scannow

Сценарий 2: Принудительное удаление Pending.xml (WinRE)

Если система зациклилась на неудачной транзакции при загрузке (откат обновлений по кругу) или онлайн-DISM выдает ту же ошибку 0x8007371b.

  1. Загрузитесь в среду восстановления (WinRE -> Командная строка).
  2. Определите букву диска с Windows (например, D:).
  3. Перейдите в папку: cd D:\Windows\WinSxS.
  4. Переименуйте или удалите файл ожидания транзакций:
    ren pending.xml pending.xml.old
  5. Выполните оффлайн-откат незавершенных действий:
    dism /image:D:\ /cleanup-image /revertpendingactions

Типовые ошибки администраторов

  • Попытка применить DISM /ResetBase: Команда /StartComponentCleanup /ResetBase удаляет предыдущие версии компонентов и делает текущие обновления неудаляемыми. Если хранилище уже повреждено (0x8007371b), выполнение ResetBase может усугубить коррупцию, превратив её в неисправимую (только переустановка ОС In-Place Upgrade). Сначала почините хранилище через RestoreHealth!
Хранилище компонентов (WinSxS) на сервере разрушено, а переустановить ОС нельзя?
Когда стандартные средства DISM бессильны, требуется микрохирургия (Surgical Repair) — ручной анализ логов CBS.log, извлечение недостающих манифестов (.manifest) и ключей реестра из 'здоровой' ОС-донора. Инженеры ITSTM обладают опытом глубокого восстановления архитектуры Windows без переустановки.
💡 Практика специалистов: Практика ITSTM: При анализе логов C:\Windows\Logs\CBS\CBS.log во время ошибки 0x8007371b, мы часто находим строки вида 'Store corruption, manifest missing for package...'. Если DISM /RestoreHealth не справляется (т.к. не знает, что качать), необходимо найти в логах точное имя KB-пакета (например, Package_for_RollupFix_XXXX), который вызвал сбой транзакции, и принудительно удалить его через DISM /Remove-Package, чтобы 'откатить' транзакцию вручную.

Частые вопросы (FAQ)

Почему SFC /Scannow не решает проблему 0x8007371b?

Утилита SFC (System File Checker) проверяет только 'активные' системные файлы (в System32), сверяя их с эталоном в WinSxS. Если повреждено само хранилище эталонов (WinSxS/Транзакции), SFC бессилен. Сначала нужно починить базу через DISM, а потом уже запускать SFC.

Что такое TrustedInstaller?

TrustedInstaller (Служба установщика модулей Windows / TiWorker.exe) — это супер-пользователь (и служба), обладающий эксклюзивными правами на модификацию системных файлов и хранилища WinSxS. Даже Администратор не может напрямую изменять эти файлы.

Можно ли выполнить In-Place Upgrade (Обновление поверх) для решения этой ошибки?

Да, если ОС загружается, монтирование ISO-образа той же (или более новой) версии Windows и запуск setup.exe -> 'Обновить этот ПК сейчас' (с сохранением файлов и программ) — это финальный и 100% рабочий метод 'ремонта' всего стека CBS.

Как влияет папка SoftwareDistribution на ошибку 0x8007371b?

Опосредованно. SoftwareDistribution — это просто папка для скачивания (Download) архивов. Ошибка 371b возникает на более глубоком уровне — когда архивы распакованы и переданы в движок CBS (WinSxS) для интеграции в ядро.

Полезные материалы
Рекомендуем