Приветствуем, коллеги и товарищи по несчастью! 👋 Снова эта дурацкая штука с восклицательным знаком в центре обновления? Снова холодный взгляд на ошибки 0x800F0991 или 0x800F0922, которые словно насмехаются над нами? Мы в команде T.E.X.H.O прошли через это десятки раз, пролили литры кофе, разобрали горы логов и теперь готовы выложить вам не просто инструкцию, а, если хотите, «боевой протокол». Забудьте про «попробуйте это, а потом вот это». Мы пойдём по полочкам: от простого к сложному, с пониманием, что и зачем тыкаем. И да, здесь будет немного боли, немного юмора про «запустите от администратора» и надежда на то, что чистая переустановка — это не наш метод. 😉
🍩 Пряник для нетерпеливых: быстрый пинок системе
Прежде чем разбирать систему на винтики, дайте ей шанс одуматься. Откройте PowerShell от имени администратора (да-да, тот пункт, который все игнорируют) и вбейте эту порцию команд. Они перезапустят все службы, ответственные за апдейты, и выметут временные файлы. Помогает в каждом пятом случае, и это уже хорошо.
# Даём службам команду "Отбой!" и "Подъём!"
Stop-Service wuauserv, cryptSvc, bits, msiserver -Force
Start-Service msiserver, bits, cryptSvc, wuauserv
# Жёстко вычищаем папки загрузок и данных. Без жалости.
rm -Force $env:windir\SoftwareDistribution\Download\* -Recurse -ErrorAction SilentlyContinue
rm -Force $env:windir\SoftwareDistribution\DataStore\* -Recurse -ErrorAction SilentlyContinue
# Небольшая пауза для осмысления
timeout /t 5 /nobreak >nul
Перезагружаемся и пробуем снова. Не прокатило? Что ж, значит, проблема глубже, и пора надеть перчатки. 🧤
========================
✅ Подпишитесь на канал - (это бесплатно и очень помогает алгоритму)
❤️ Поставьте лайк - (это один клик, а нам очень важно)
🔄 Репостните друзьям - (которые играют в танки и жалуются на FPS)
💰 Задонатьте (Даже 50 руб. - это топливо для новых статей, скриптов и пошаговых инструкция для Вас. Большое Спасибо понимающим! 🙏
💰ПОДДЕРЖАТЬ КАНАЛ МОЖНО ТУТ ( ОТ 50 РУБЛЕЙ )💰
Или сделать любой перевод по ССЫЛКЕ или QR-коду через СБП. Быстро, безопасно и без комиссии. ( Александр Г. ) "Т.Е.Х.Н.О Windows & Linux".
=========================
Раздел 1: Копаемся в «чердаке» системы — хранилище WinSxS (виновник 0x800F0991)
Представьте, что C:\Windows\WinSxS — это гигантский, слегка запылённый чердак вашей операционной системы. Там лежат все детальки, винтики и их предыдущие версии. Иногда там заводится цифровая моль и грызёт важные бумаги (манифесты). Наша задача — не сжечь чердак, а аккуратно всё проверить и навести порядок.
Действие 1. Не просто проверка, а рентген с историей болезни
Забудьте про одну строчку в командной строке. Мы будем использовать PowerShell и заставим его рассказать всё.
# Создаём лог-файл с датой, чтобы потом не рыться в куче текста
$LogFile = "$env:SystemDrive\DISM_Checkup_$(Get-Date -Format 'yyyyMMdd_HHmm').log"
Write-Host "DISM начинает глубокое сканирование. Все подробности летят в файл: $LogFile" -ForegroundColor Yellow
Repair-WindowsImage -Online -RestoreHealth -LogPath $LogFile -Verbose
Если прогресс встал колом на 20% или в логе появились крики о «неустранимых повреждениях» — не паникуем. Значит, образ системы не может сам себя вылечить. Нужна «донорская» копия. Узнаём точную версию нашей системы:
(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").UBR
Например, получили 19045.4894. Теперь идём на официальный сайт Microsoft и качаем ISO Windows 25H2 точно такой же версии. Монтируем образ (пусть будет диск F:).
Repair-WindowsImage -Online -RestoreHealth -Source "WIM:F:\sources\install.wim:1" -LimitAccess -Verbose
Ключик -LimitAccess тут очень важен — он говорит системе: «Не рыскать по интернету в поисках запчастей, пользуйся тем, что на флешке».
Действие 2. Генеральная уборка с последствиями
После лечения можно смело выбросить хлам. Команда ниже — это как взять и выкинуть с чердака все коробки с надписью «Старое, может пригодиться». Места освободится много, а система станет чище.
# Сначала смотрим, сколько места обещают освободить
DISM /Online /Cleanup-Image /AnalyzeComponentStore
# А теперь — делаем! Внимание: это действие необратимо для старых обновлений.
DISM /Online /Cleanup-Image /StartComponentCleanup /ResetBase
Важное предупреждение: После /ResetBase вы не сможете удалить через «Программы и компоненты» обновления, которые стояли до этого момента. Убедитесь, что система вас устраивает.
Раздел 2: Разбираемся со службами и цифровыми подписями (цель — 0x800F0922)
Если ошибка 0x800F0922, значит, проблема не в «детальках на чердаке», а в «почтальоне, который не может доставить посылку» или в «пломбе на конверте», которую система не признаёт.
Действие 1. Переучиваем систему основам общения
Просто перезапустить службы мало. Нужно заставить систему заново прочитать все инструкции (DLL-библиотеки), как эти службы должны работать.
# Переходим в самое сердце системы
Set-Location "$env:windir\System32"
# Массовая перерегистрация всего, что связано с обновлениями и шифрованием
Get-ChildItem . -Filter "*.dll" | Where-Object {$_.Name -like "*crypt*" -or $_.Name -like "*wuclt*"} | ForEach-Object { regsvr32.exe /s $_.FullName }
# Сбрасываем сетевые настройки, которые могли искривиться
netsh winsock reset
netsh winhttp reset proxy
Перезагрузка. Обязательно.
Действие 2. Чиним цифровые печати
Бывает, что ломается механизм, проверяющий, что обновления подписаны самим Microsoft.
# Останавливаем службу шифрования
Stop-Service CryptSvc -Force
# ОЧЕНЬ АККУРАТНО удаляем её кэшированные ключи (они пересоздадутся)
Remove-Item "$env:ProgramData\Microsoft\Crypto\RSA\MachineKeys\*" -Force -Recurse -ErrorAction SilentlyContinue
Remove-Item "$env:ProgramData\Microsoft\Crypto\DSS\MachineKeys\*" -Force -Recurse -ErrorAction SilentlyContinue
# Запускаем службу заново
Start-Service CryptSvc
Канал «Каморка Программиста» — это простые разборы программирования, языков, фреймворков и веб-дизайна. Всё для новичков и профессионалов.
Присоединяйся прямо сейчас.
Действие 3. Проверяем, не мешает ли «охрана»
В современных Windows (25H2) есть встроенный «телохранитель» на основе виртуализации (VBS). Иногда он слишком ретив и не пускает старые драйверы, которые любят ставить игры или эмуляторы дисков.
# Смотрим, включён ли этот телохранитель
systeminfo | Select-String "Виртуализация"
# Ищем в списке драйверов известных нарушителей спокойствия
driverquery /v | Select-String -Pattern "(EAC|BattlEye|RivaTuner|DAEMON Tools)" -Context 2
Если VBS включён, а в списке есть драйверы без свежей подписи Microsoft, можно на время установки обновлений попросить телохранителя отдохнуть:
bcdedit /set hypervisorlaunchtype off
(После успешного обновления и перезагрузки не забудьте вернуть значение auto).
И что в итоге? А вот что.
Когда вы пройдёте весь этот путь (а он, поверьте, стоит того), вы получите не просто починившуюся установку обновлений. Вы получите прозрачную систему. Вы будете знать, что хранилище компонентов очищено от цифрового хлама, службы работают на свежих настройках, а конфликтующие драйверы обезврежены. Система будет обновляться не потому, что вы её «уговорили», а потому, что вы привели в порядок её внутренние механизмы. Это как почистить карбюратор в старом моторе — и он снова заурчит ровно. 🏍️
Страховка на случай, если что-то пошло не так
Мы не варвары, мы инженеры. Поэтому первое, что нужно сделать ДО начала всех танцев с бубном — создать точку для отступления.
Checkpoint-Computer -Description "Спасение от 0x800F0991_0922" -RestorePointType MODIFY_SETTINGS
Если после всех манипуляций Windows вдруг решит, что ей лучше не работать, загружаемся с установочной флешки, выбираем «Восстановление системы» и откатываемся к этой спасительной точке.
F/A/Q
Вопрос: DISM встал на 20% и не двигается. Это конец?
Ответ: Нет, это начало интересного пути. Ему нужен внешний, здоровый образ системы (ISO). См. раздел выше.
Вопрос: А можно просто почистить папку WinSxS, чтобы место освободить?
Ответ: Можно. Если вы хотите превратить свой компьютер в изящную, но бесполезную подставку для кофе. Не делайте этого. Используйте только DISM /Cleanup-Image.
Вопрос: Антивирус ругается, когда я делаю эти шаги. Он прав?
Ответ: Отчасти. Он видит активные действия с системными файлами. На время процедур лучше отключить его полностью (включая фоновые службы) или заранее добавить папки C:\Windows\SoftwareDistribution и C:\Windows\WinSxS в список исключений.
Вопрос: Всё сделал, но ошибка осталась. Что делать?
Ответ: Остаётся последнее — ручная установка. Найдите в журнале событий (Event Viewer) номер конкретного обновления (KBXXXXXXX), скачайте его MSU-файл с сайта Microsoft вручную и установите через wusa.exe "путь\к\файлу.msu" /quiet /norestart.
Финал.
Друзья, если эта эпопея с кодами ошибок, DISM и PowerShell спасла вам выходные (или рабочий день) — будем рады вашей поддержке. 💙
Наш канал T.E.X.H.O Windows & Linux существует, чтобы разбирать такие проблемы с фундамента, а не давать поверхностные советы.
Подпишитесь на нас в Дзене, чтобы не потерять. Поставьте лайк этой статье, если она была для вас полезна. Поделитесь ссылкой с тем, кто сейчас, возможно, смотрит на синий экран с ошибкой обновления.
Если у вас есть возможность и желание поддержать наш труд материально (чтобы мы могли тратить ещё больше времени на подобные разборы, а не на что-то ещё), для этого есть система донатов. Каждая такая помощь бесценна.
#Windows25H2 #ошибка0x800F0991 #ошибка0x800F0922 #WinSxS #хранилище_компонентов #DISM #PowerShell #RepairWindowsImage #службы_Windows #центр_обновления #WindowsUpdate #восстановление_системы #диагностика #кэш_обновлений #CleanupComponentStore #сброс_служб #криптография #CryptoAPI #VBS #гипервизор #драйверы_конфликты #ручная_установка_обновлений #wusa #пакет_обновления #откат_обновлений #точка_восстановления #ProcMon #CBSlog #устранение_неполадок #администрирование_Windows