Microsoft windows client cbs что это
Перейти к содержимому

Microsoft windows client cbs что это

  • автор:

TextInputHost.exe — что это за процесс? (Windows 10, Text Input Host)

Приветствую. Данная заметка опишет предназначение компонента textinputhost.exe, который может содержать операционная система OS Windows 10.

TextInputHost.exe — что это за процесс? (Text Input Host)

Коротко ответ: обеспечивает ввод с виртуальной сенсорной тач-клавиатуры (при использовании обычной клавиатуры — можно отключить).

Название процесса в версиях Виндовс начиная с билда 2004 — InputApp. Компонент может нагружать графический адаптер (GPU).

Папка запуска процесса:

Директорию запуска можно проверить вручную: откройте диспетчер задач (Win + R > taskmgr), найдите процесс, кликните правой кнопкой > выберите пункт Открыть расположение. Далее откроется папка, будет выделенный файл TextInputHost.exe. Вверху проверьте путь каталога. Если отсутствует название директории SystemApps — стоит просканировать компьютер на наличие угроз лучшими утилитами (Dr.Web CureIt!, AdwCleane, HitmanPro), возможно TextInputHost.exe — вирус.

TextInputHost.exe — как отключить?

  1. Зажмите кнопки Win + R, вставьте команду services.msc, нажмите ОК.
  2. Находим Служба сенсорной клавиатуры и панели рукописного ввода.
  3. Кликаем два раза по названию.
  4. Выставляем пункт Отключена в меню Тип запуска, после — нажимаем кнопку Остановить.

Второй способ — откройте окно Конфигурация системы (Win + R > команда msconfig), активируйте вкладку Службы > снимите галочку:

Сохраните изменения кнопкой ОК, выполните перезагрузку операционки.

Перед вмешательством в операционную систему Windows 10 — желательно сперва создать точку восстановления.

«Неуловимый» список установленных обновлений Windows

Вы когда-нибудь задумывались, с помощью чего формируется список установленных обновлений Windows? А через какое API его достать? Ответы на эти и другие возникающие вопросы я постараюсь дать в своём небольшом исследовании.

Предыстория или с чего всё началось.

В нашей компании каждый год проходит конференция молодых специалистов, где каждый участник может решить проблему какого-либо отдела (список тем заранее предлагается).

Раньше на каждое «ТО» с помощью WSUS подтягивались все выпущенные обновления и распространялись на все машины. Также периодически выходили ТСБ (технические сервисные бюллетени), в которых указывалось, что требуется установить необходимые обновления в виде изолированных пакетов. В итоге у нас накапливаются обновления, которые в WSUS отследить нельзя, а можно было увидеть только через панель управления в разделе «Установленные обновления».

Наглядная схема обновления

Бывают ситуации, когда АРМ или сервер «падает» и приходится его восстанавливать из образа, созданного некоторое время назад. При восстановлении из образа есть вероятность того, что мы можем потерять нужные нам обновления (которые пришли в виде изолированных пакетов), которые устанавливались до падения машины. Объяснил максимально подробно насколько мог, потому что уточнения будут уже коммерческой тайной.

Вот поэтому и возникла идея создать программу, которая бы могла извлечь этот список обновлений (желательно удаленно по локальной сети), записать в файл/базу, сравнить текущий перечень с неким шаблоном и выдать сообщение на SCADA систему через один из протоколов — SNMP, OPC.

Как вы могли догадаться из названия статьи, уже на выборе метода получения списка у меня возникла непростая задача. Я, как обычно, решил поискать нужное в поисковике, задал вопросы на профильных ресурсах (раз, два, на английском stackoverflow почему-то не понравился мой вопрос и его пришлось удалить), но все ответы не давали нужного результата. Поэтому пришлось разбираться самому, о чем и пойдет речь далее.

Консольные команды

Начнем с простого и воспользуемся тем, что предлагает нам Windows без использования сторонних средств. Это можно сделать с помощью следующих команд:

  • wmic qfe list
  • systeminfo
  • dism /online /get-packages
  • через PowerShell:

  • Get-HotFix
  • Get-SilWindowsUpdate (доступно только в серверных редакциях)
  • Get-WmiObject -Class win32_quickfixengineering — через доступ к WMI классу win32_quickfixengineering (о WMI чуть позже)

Получить список через графический интерфейс можно через стандартный пункт Панели управления «Установка/удаление программ», но скопировать оттуда мы ничего не можем. Каждый инструмент панели управления представлен файлом .cpl в папке Windows\System. Файлы .cpl в системную папку Windows автоматически загружаются при запуске панели управления. За пункт Программы отвечает файл Appwiz.cpl. Его анализ ни к чему не привел.

Вывод консольной команды можно перенаправить в файл и дальше начать его парсить, но это неправильно, плюс вызов программы (по правилам СБ не пройдет) и об удаленном получении списка речь не идёт. Поэтому предлагаю вам просто вызвать команды, сравнить количество обновлений в каждом списке, со списком через Панель управления и продолжить наше расследование дальше.

Формально все методы получения списка обновлений можно разделить на две группы: локальные и сетевые.

Локальные и сетевые методы получения информации

Все методы проверялись на чистых образах систем (Windows 7, 8, Server 2012 R2) с интегрированными обновлениями, после каждого обновления через Центр обновления с официальных серверов Microsoft проводилась дополнительная проверка. Остановимся на каждом из них подробнее.

Есть и вторая вариация этого метода: Update Session — получение информации с помощью подключения к сессии обновления Windows Update Agent (в данном случае работаем не напрямую с библиотекой).

Microsoft подсказывает об удаленном использовании API.

Главный минусы этих двух методов — не позволяют найти исправления KB, которые не распространяются через Центр обновления Windows. Можно увидеть только то, что прошло через сам агент обновления, то есть данный вариант нас не устраивает.

Система обслуживания образов развертывания и управления ими (Deployment Image Servicing and Management) — это средство командной строки, которое может использоваться для обслуживания образа Windows или для подготовки образа среды предустановки Windows (Windows PE). Является заменой диспетчера пакетов (Pkgmgr.exe), PEimg и Intlcfg.

Данная утилита используется для интеграции обновлений, сервис паков в образ системы. Обновления Windows представляют собой отдельные модули, которые могут быть представлены в нескольких вариантах:

  • .cab-файлы (Cabinet) — архивы. Предназначены для распространения и установки при помощи модулей Центра обновлений Windows в автоматизированном режиме;
  • .msu-файлы (Microsoft Update Standalone Package) — исполняемые файлы. Предназначены для распространения и установки самими пользователями в ручном режиме через каталог обновлений Microsoft. Фактически представляют собой упакованный набор, состоящий из .cab-, .xml, .txt-файлов.

Количество обновлений совпадало с количеством из списка Панели управления до первого апдейта через центр управления — после него количество обновлений стало меньше (было 214, стало 209), хотя по логике они должны были увеличиться. Примеры вывода До обновления, После обновления.

С чем это связано я могу только предполагать — возможно, какие-то обновления замещали предыдущие, следовательно, и количество стало меньше.

Чуть позже я наткнулся на утилиту от китайцев DISM++, которая основана не на DISM API или DISM Core API, но имеющиеся в ней библиотеки не имеют нужных мне открытых методов, поэтому я забросил эту идею и продолжил поиски дальше.

Windows Server Update Services (WSUS) — сервер обновлений операционных систем и продуктов Microsoft. Сервер обновлений синхронизируется с сайтом Microsoft, скачивая обновления, которые могут быть распространены внутри корпоративной локальной сети. Опять же специальный инструмент, предназначенный для работы с обновлениями.

Распространяется только на серверных редакциях ОС Windows, поэтому был развернут следующий стенд:

  • основная система – Windows Server 2016;
  • а через систему виртуализации Hyper-V были развернуты две клиентские ОС:
    • Windows 8.1
    • Windows 7

    Чтобы не выделять раздел жесткого диска для новой системы я пользуюсь WinNTSetup и устанавливаю систему в VHD диски — загрузчик, начиная с Windows 7 (редакций Professional/Ultimate), прекрасно справляется с загрузкой с образа диска. Полученные таким образом диски можно спокойно использовать и в Hyper-V — убиваете сразу двоих зайцев. Не забудьте только сделать заранее копию хранилища BCD через команду bcdedit /export e:\bcd_backup.bcd.

    Настраивать AD для рассылки обновлений я не захотел, поэтому просто прописал в групповых политиках путь к WSUS серверу:

    Параметры настройки

    Обязательно уделите внимание на порт, я из-за опечатки (8350 вместо 8530) не мог получить обновления на клиентских машинах, хотя сделано было всё верно. Так же названия пунктов в групповых политиках на Windows 7 и Windows 8 различаются.

    Для получения отчета средствами WSUS необходимо дополнительно установить пакет — система уведомит вас об этом.

    Так как интернета нет, то ситуация с обновлениями выходит как на скриншоте ниже:

    Поведение похоже на WUApi — если обновления не прошли через них, то они не знают об этом. Поэтому данный метод снова не подходит.

    Windows Management Instrumentation (WMI) в дословном переводе — инструментарий управления Windows.

    WMI — реализованный корпорацией Майкрософт стандарт управления предприятием через Интернет для централизованного администрирования и слежения за работой различных частей компьютерной инфраструктуры под управлением платформы Windows. WMI является открытой унифицированной системой интерфейсов доступа к любым параметрам операционной системы, устройствам и приложениям, которые функционируют в ней.

    Данный метод позволяет получить данные как с локальной машины, так и удаленно в пределах локальной сети. Для обращения к объектам WMI используется специфический язык запросов WMI Query Language (WQL), который является одной из разновидностей SQL. Получать список мы будем через WMI класс win32_quickfixengineering.

    Количественно всё совпадает (даже после обновлений), поэтому было решено использовать этот метод. Для программного создания WMI запросов советую использовать следующую утилиту — WMI Delphi Code Creator. Благодаря ей я немного по другому взглянул на свой код и решил использовать заготовку из этой программы.

    Полученные данные методом WMI меня не остановили, и я решился на „поверхностный реверс-инжиниринг“. Воспользуемся утилитой Process Monitor из сборника программ Sysinternals Suite для выявления файлов и ветвей реестра, которые используются при вызове выше перечисленных консольных команд и обращению к пункту „Установленные обновления“ через Панель управления.

    Моё внимание привлек файл wuindex.xml, расположенный в папке C:\Windows\servicing\Packages\. Для его анализа была написана следующая программа:

    К сожалению, данный файл встречается не на всех системах и принцип его генерирования и обновления остался для меня загадкой. Поэтому снова данный метод нам не подходит.

    Вот мы подошли к тому, с чем связаны все эти методы. Продолжая анализ логов Process Monitor я выявил следующие папки и файлы.

    Файл DataStore.edb, расположенный в папке C:\Windows\SoftwareDistribution\DataStore. Это база данных, в которой содержится история всех обновлений установленной версии Windows, включая те обновления, которые только стоят в очереди.

    Для анализа файла DataStore.edb использовалась программа ESEDatabaseView. В БД существует таблица tbUpdates, содержимое которой трудно интерпретировать.

    Таблица tbUpdates в ESEDatabaseView

    После мое внимание привлек процесс TiWorker.exe, который вызывался каждый раз при открытии пункта в Панели управления. Он „ходил“ по многим папкам, одна из которых вывела меня на верный путь.

    C:\Windows\SoftwareDistribution — это папка, используемая службой обновления Windows для загрузки обновлений на компьютер с последующей их установкой, а также хранит сведения обо всех ранее установленных обновлениях.

    Папка WinSxS, расположенная по адресу C:\Windows\winsxs. Это служебная папка операционной системы Windows служащая для хранения ранее установленных версий системных компонентов. Благодаря ее наличию существует возможность отката к более старой версии обновления в случае необходимости.

    C:\Windows\servicing — основная составляющая всей системы, имя которой Component-Based Servicing (CBS).

    CBS — обслуживание на основе компонентов, составляющая Windows, интегрированная с службой Windows Update. В противоположность обслуживанию на основе файлов File-Based Servicing (FBS) (для ОС, предшествующих Windows Vista), в котором файлы обновлялись прямо в системных директориях, в CBS появилась целая иерархия директорий и целое семейство (стек) модулей/библиотек обслуживания.

    CbsApi.dll — основная библиотека поддержки технологии CBS. Не имеет открытых методов, поэтому напрямую использовать её я не смог. Microsoft использует TrustedInstaller.exe и TiWorker.exe для доступа к методам данной библиотеки и уже через эти процессы выводит нужные нам данные. ‪Записи ведутся в C:\Windows\Logs\CBS\CBS.log.

    На момент создания прототипа программы (на скриншотах можете увидеть май 2019) русскоязычной информации о CBS не было, но в конце августа нашлась очень хорошая статья в блоге — http://datadump.ru/component-based-servicing. Очень интересная статья, которая подтвердила мой опыт и собрала в себе нужную информацию. И ещё по теме: http://www.outsidethebox.ms/17988/

    Вывод

    Microsoft слишком усложнила тривиальную задачу по получению списка обновлений и сделала этот процесс не совсем явным. Всё это сделано для безопасности, но не для простоты использования. Соглашусь с автором статьи — в получении обновлений стали отсутствовать предсказуемость и прозрачность.

    В результате исследования была написана следующая программа, демонстрацию работы которой можно увидеть в данном видео:

    Как исправить поврежденный файл cbs.log за несколько простых шагов

    Повреждение системных файлов – это не то, что вы можете подмести и продолжить стандартное использование. С ними нужно разобраться и как можно скорее. Одна такая ошибка сообщает пользователям, которые запускают проверку системных файлов, что файл cbs.log поврежден .

    Поврежденный файл cbs.log может означать разные вещи, но ни один из них не годится. Вот почему вы должны решить эту проблему, и мы объяснили, как это сделать ниже.

    Как исправить поврежденный cbs.log в Windows 10

    1. Сканирование на наличие вредоносных программ и повторный запуск SFC
    2. Запустите DISM
    3. Сброс настроек компьютера до заводских настроек .

    Решение 1. Сканирование на наличие вредоносных программ и еще раз запуск SFC

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

    С другой стороны, когда файл cbs.log поврежден, мы настоятельно рекомендуем сканировать его на наличие вредоносных программ. Это может быть ложным срабатыванием или результатом заражения системы вредоносным ПО.

    Вот как выполнить глубокое автономное сканирование с помощью Защитника Windows:

    1. Откройте Защитник Windows в области уведомлений панели задач.
    2. Выберите Защита от вирусов и угроз .
    3. Выберите Параметры сканирования .
    4. Выберите Автономное сканирование Защитника Windows.
    5. Сохраните все, что вы делаете, так как этот режим перезагрузит компьютер.
    6. Нажмите Сканировать сейчас .

    После этого откройте командную строку от имени администратора и снова запустите sfc/scannow, чтобы убедиться, что ошибка устранена. Если это не так, перейдите к дополнительным шагам.

    Решение 1 – Запустите DISM

    Если на вашем компьютере нет вредоносных программ, но вы все еще сталкиваетесь с той же ошибкой, мы рекомендуем запустить DISM вместе с утилитой проверки системных файлов. Средство обслуживания образов развертывания и управления ими должно с легкостью устранять все повреждения системы.

    Вот как запустить DISM вдоль SFC через командную строку с повышенными правами:

    1. Откройте командную строку как администратор.
    2. В командной строке введите sfc/scannow и нажмите Enter.
    3. После этого введите следующую команду и нажмите Enter после каждого:
      • dism/online/cleanup-image/checkhealth
      • dism/online/cleanup-image/restorehealth
    4. Перезагрузите компьютер, когда все закончится.
    • ЧИТАЙТЕ ТАКЖЕ: с помощью этих инструментов вы можете быстро исправить поврежденные файлы AVI

    Решение 2 – Сброс вашего ПК до заводских настроек

    Наконец, если вы снова видите отрицательные результаты и появляются признаки системных проблем, мы предлагаем сбросить ваш ПК до заводских настроек и перейти оттуда. Эта операция действительно избавит вас от всех установленных приложений, но вы по крайней мере сможете сохранить свои файлы.

    Вот как можно восстановить заводские настройки вашего компьютера в Windows 10:

    1. Нажмите клавишу Windows + I, чтобы открыть приложение Настройки .
    2. Выберите раздел Обновление и безопасность .
    3. Выберите Восстановление на левой панели.
    4. В разделе Сбросить этот компьютер нажмите Начало работы .

    С учетом сказанного мы можем завершить эту статью. Не забудьте сообщить нам, помогли ли они вам или нет в разделе комментариев ниже.

    Прочее Как правильно анализировать cbs.log и результаты проверки sfc /scannow

    Файл-лог журнала обслуживания windows, который содержит подробные сведения об ошибках автономного обслуживания, подробные сведения об ошибках интерактивного обслуживания, а так же как вспомогательный элемент для dism.exe

    Не вдаваясь в тонкости осмысливания написанного ( определение взято отсюда ) сообщу следующее:

    Многим из нас знакома программа sfc.exe, с помощь которой можно проверить состояние целостности защищенных системных файлов.
    (Обсуждение в этой теме: Обзор утилиты sfc.exe )
    Результат ее работы будет отражен как раз так же в этом логе.
    Но, для большинства пользователей, анализ результата проверки остается трудновыполнимой задачей.

    Хорошо, если система рапортует о том, что защита ресурсов wiindows не обнаружила поврежденных файлов или что все поврежденные файлы восстановлены.
    А что делать, если мы видим что то вроде такого сообщения?

    Программа защиты ресурсов Windows обнаружила поврежденные файлы, но не может восстановить некоторые из них
    Один из шагов к решению проблемы — это произвести анализ лога, который создается при сканировании. Лог-файл находится по пути %windir%\logs\cbs\cbs.log и открыть его можно любым текстовым редактором, включая стандартный notepad.
    Неподготовленный пользователь, открыв и посмотрев лог, скорее всего испытает острое желание закрыть файл и больше не открывать. Поэтому, для комфорта восприятия, пользователи придумали приводить лог в более читабельный вид, распарсив его и отфильтровав "лишние" записи оставить только те, что нужны.
    Сделать это можно разными методами, кстати — в сети распространен метод с парсингом файла cbs.log введя в командной строке простую команду:

    Но, как показала практика, этот метод подходит лишь для того, что бы понять были повреждены защищенные системные файлы или нет.
    Как оказалось, иногда, в случае выявления проблем или когда необходимо увидеть какие операции производились, то полученной таким методом информации оказывается недостаточно для того, отразить полноценную куартину.

    Как быть?
    Для более комфортного первоначального анализа мы с коллегами создали такой скрипт:
    Проверка целостности системных файлов утилитой sfc

    Запустив скрипт вы сможете произвести проверку целостности системных файлов, произвести очистку и восстановление хранилища данных windows, в котором хранятся резервные копии защищенных системных файлов windows.
    Из этих копий и производится восстановление поврежденных файлов.
    Скрипт выводит аналогичный, но чуть более информативный лог + копирует в каталог запуска скрипта сам файл cbs.log.
    А так же очищает старые записи, что немного экономит место на диске и спасает от зависаний компьютера ( при определенных условиях) при попытке открыть cbs.log. Да и читать будет удобнее и меньше.
    Это связано с тем, что порой размер файла cbs.log может раздуваться и я видел монстров по 40 с лишним мегабайт. в общем, скрипт его "облегчает" до оптимального объема.
    Идем дальше.
    Пробуем читать cbs.log.

    Что нужно знать?

    При обнаружении поврежденных защищенных системных файлов SR пытается их восстановить из хранилища данных.
    Само хранилище данных находится по адресу:

    И, если по каким то причинам не удалось получить доступ к файлам или в хранилище они тоже оказались повреждены — в таком случае периодически мы можем наблюдать сообщение о невозможности восстановления файлов.
    К которому бонусом может присоединиться какая нибудь трабла в работе системы.
    =========================================================

    Напомню, что лог cbs.log находится по такому пути:

    Вернемся, непосредственно, к файлу cbs.log. Вы его уже открыли в текстовом редакторе?
    Открывайте.
    Лично мне более удобным для работы с файлами такого типа является редактор notepad++
    Так как редакторов много и каждый волен выбирать тот, что ему по душе — то далее я буду описывать свои действия в редакторе в контексте интерфейса notepad++ , а вы (если пользуетесь другим) , можете ориентироваться по аналогии в своем.

    Думаю вы уже до этого находили информацию о том, что нужные нам действия помечаются тегом [SR] в каждой строке — именно по этому признаку и принято парсить cbs.log. А если вы не знали — значит узнали теперь)
    Теперь у нас с вами два варианта: либо переходить сразу к проблемным файлам через поиск (это если у вас уже есть отфильтрованый одним из упомянутых методов лог) либо вывести все строки с тегом [SR].
    Я лично всегда так делаю — легче потом будет навигация.
    В notepad++ есть возможность вывести в дополнительной области все найденные по маске ( тегу [SR] ) строки.

    Делается это просто: открываем поиск (кнопка в виде бинокля), вводим в строку поиска [SR], далее нажимаем кнопку "Найти все в текущем документе" и получаем в нижней области программы все строки найденные по нужному фильтру, а в вверхней области основной текст файла cbs.log, как видно на скриншоте:

    1517323608718

    Это позволит вам видеть проблемные места (нижняя область) и одновременно смотреть сопутсвующую информацию по ним в основном логе (верхняя область).
    Ну как, все получилось?

    Далее в нижней области, где отфильтрованы строки с тегом [SR] пропускаем все что выглядит примерно так:

    Сделать это легко — достаточно воспользоваться скроллом, потянув за него указателем мышки.
    Почему пропустить? Файлы системой защиты проверяются блоками по 100 файлов и это на сейчас служебная информация, не несущая для нас полезной нагрузки.

    Как только находим нечто отличающееся — стоп.
    Например:
    2017-10-29 21:28:40, Info CSI 000001e1 [SR] Cannot repair member file [l:24<12>]"gpscript.exe" of Microsoft-Windows-GroupPolicy-Script, Version = 6.1.7601.23452, pA = PROCESSOR_ARCHITECTURE_INTEL (0), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = , Type neutral, TypeName neutral, PublicKey neutral in the store, hash mismatch

    Все, сейчас мы нашли то, что надо.
    Если вбить в переводчик то, что написано раздельным текстом, то можно вполне понять что не так.
    На примере данной строки давайте и разберемся.

    Пусть перевод несколько забавный, но суть мы уловили — не удалось восстановить файл gpscript.exe, в хранилище компонентов он так же считается поврежденным, так как хэш сумма файла не совпадает с эталоном.
    Что дальше?
    Дальше можно либо приступить к восстановлению хранилища компонентов, либо смотреть какой файл нужен, где он должен лежать и как его восстановить, если нет возможности автоматически восстановить хранилище компонентов.
    Начнем с второго варианта — получаем информацию о файле. Находим упомянутую строку в основном логе:

    Тут мы отчетливо видим, что файл в хранилище должен быть по адресу:
    Hashes for file member \SystemRoot\WinSxS\x86_microsoft-windows-grouppolicy-script_31bf3856ad364e35_6.1.7601.23452_none_677acd98e72e71cc\gpscript.exe
    Версия его: Version = 6.1.7601.23452 и на него ссылается компонент патча KB3159398.
    Открываем упомянутый патч на сайте Microsoft:
    Download Обновление для системы безопасности Windows 7 (KB3159398) from Official Microsoft Download Center
    Находим там ссылку "Связанные ресурсы", переходим.
    https://support.microsoft.com/ru-ru. -the-security-update-for-group-policy-june-14
    Открываем сведения о файлах и находим тот, что нам нужен:

    1517332469390

    Все, значит это то, что нам нужно.
    Просто переустанавливаем это обновление и нужные файлы перезаписываются. А значит — все станет ОК.

    Это был пример на живом логе реальной системы.

    Почему необходимо найти именно такой же файл и такой же версии?
    Потому что когда данный файл внедрялся в систему, то создается ряд условий, на основании которых система защиты будет считать "правильным" только такой файл, который будет соответствовать этим самым условиям.
    Другими словами, если какое то из обновлений системы, к примеру, обновляло версию файла и эталоны, то файл из ранее сделанной резервной копии, но другой версии будет считаться неактуальным.
    Именно поэтому часто встречающуюся рекомендацию:
    Вставьте диск (флэшку) с дистрибутивом вашей версии операционной системы и введите sfc / scannow .
    Можно смело пропускать мимо ушей, глаз или как там еще информация дошла до вас.

    Тут имеется очень важный нюанс — дистрибутив должен быть именно таким же.
    То есть с точно таким же набором обновлений, патчей и заплаток.
    А найти такой дистрибутив довольно сложно, если вообще будет возможным.

    Конечно, если вы были настолько благоразумны, что после очередного обновления сделали резервный диск восстановления — то тут, конечно, все в порядке и файлы подойдут.

    Так же файл, считающийся системой защиты поврежденным может не запуститься или работать некорректно.
    Он может некорректно взаимодействовать и с другими компонентами операционной системы или прочим программным обеспечением.

    Отсюда можно сделать вывод, что при первоначальной проверке заморачиваться на счет наличия дистрибутива не стоит.
    Исключение Windows XP — там система потребует наличия папки I386, которая имеется как раз на дистрибутиве (если у вас нет где то отдельно).
    В нашем скрипте проверка ее наличия осуществляется автоматически и пользователю не придется выполнять танцы с бубном для того, что бы указать системе где она, если не удастся обнаружить.
    Достаточно смонтировать образ диска и все.

    Как еще можно восстановить поврежденные файлы?

    Можно попытаться выполнить автоматическое восстановление хранилища компонентов через пункт "Расширенная проверка и восстановление файлов" скрипта, или запустив командную строкуот имени Администратора и ввести команду:
    (Для Windows 8 — 10)
    dism /Online /cleanup-image /restorehealth

    Для Windows 7 команда будет выглядеть немного иначе, а так же потребуется наличие установленного Download Обновление для Windows 7 (KB2966583) from Official Microsoft Download Center

    DISM /Online /Cleanup-Image /ScanHealth

    В обоих случаях интернет должен быть подключен.
    После того, как хранилище компонентов будет восстановлено, попробуйте снова выполнить проверку sfc /scannow
    Как правило этой операции бывает достаточно.

    Если вам понадобилось восстановление файлов хранилища данных вручную — то вам понадобится стать владельцем объекта и получить права на изменение.

    Итак, теперь общее понимание у нас имеется, далее просто будем собирать типовые примеры записей лога cbs.log и методы исправления проблем.

    Для того, что бы облегчить себе задачу и сэкономить время+силы, я использую для первоначального анализа файл sfcdoc.log, создаваемый скриптом.
    Можно использовать и sfcdetalis.txt — но он менее информативен.

    Там мы увидим информацию о версии системы, разрядности, установленных патчах и другие вещи.
    Нас в логе интересует блок

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *