Как включить windows logs cbs

Файл CBS.log содержит записи о том, что некоторые файлы не восстанавливаются даже после успешного запуска с помощью SFC на компьютере с Windows Server

В этой статье описывается проблема, из-за которой файл CBS.log записи при статических изменениях файла. Поскольку статический файл не защищен функцией Windows Resource Protection, функция сообщает об изменениях в файле CBS.log.

Исходная версия продукта: Windows Server 2012 R2
Исходный номер КБ: 954402

Симптомы

Программа проверки файлов системы (SFC) (Sfc.exe) служит для проверки изменений системных файлов Windows на компьютере с Windows Server 2008. При запуске совмещение SFC может появиться следующее сообщение:

Все файлы и ключи реестра, перечисленные в этой транзакции, успешно восстановлены.

Однако при просмотре файла %windir%\Logs\CBS\CBS.log, который создает программа Sfc.exe, могут появиться следующие записи:

, Сведения CSI 00000142 [SR] Восстановление 1 компонента
, Сведения CSI 00000143 [SR] Начало проверки и восстановления транзакции
, Info CSI 00000145 [SR] Cannot repair member file [l:18 <9>]»img11.jpg» of Microsoft-Windows-Shell-Wallpaper-Common, Версия = 6.0.5720.0, pA = PROCESSOR_ARCHITECTURE_INTEL (0), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = , Type neutral, TypeName neutral, PublicKey neutral in the store, hash mismatchch
, Сведения CSI 00000147 [SR] Не удается восстановить файл члена [l:18 <9>]»img11.jpg» Microsoft-Windows-Shell-Wallpaper-Common, Версия = 6.0.5720.0, pA = PROCESSOR_ARCHITECTURE_INTEL (0), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = , Type neutral, TypeName neutral, PublicKey neutral in the store, hash mismatchch
, Сведения CSI 00000149 [SR] Восстановление завершено
, Сведения CSI 0000014a [SR] Транзакция
, Сведения CSI 0000014e [SR] Проверка и восстановление транзакции завершены. Все файлы и ключи реестра, указанные в этой транзакции, успешно восстановлены

Причина

Статические и мутируемые файлы — это два типа файлов, определенных в системе. Статические файлы нельзя изменить. Изменяемые файлы можно изменить. Файлы реестра и файлы журналов являются примерами изменяемых файлов. Функция Windows Resource Protection (WRP) не сканирует мутируемые файлы. Функция WRP сканирует статические файлы, когда программа SFC сканирует компьютер. Функция WRP помогает защитить большинство статических файлов. Однако в этом случае функция WRP не защищает Img11.jpg статического файла. Если статический файл изменяется при сканировании файла функцией WRP, это изменение записи в файл CBS.log. Так как функция WRP не защищает статический Img11.jpg, то у функции WRP нет другого варианта, кроме как сообщить об изменении в файле CBS.log.

Дополнительные сведения

Программа Sfc.exe записывает сведения о каждой операции проверки и каждой операции восстановления в файл CBS.log. Каждая SFC.exe программы в файле CBS.log имеет тег [SR].

Служба установщика модулей Windows также записывает данные в файл CBS.log. Служба установщика модулей Windows устанавливает дополнительные функции, обновления и пакеты обновления.

Вы можете искать теги [SR], чтобы найти SFC.exe записей программы. Чтобы найти теги [SR] и перенаправить результаты поиска в текстовый файл, выполните следующие действия:

Нажмите кнопку «Начните», введите cmd в поле «Начните поиск», щелкните правой кнопкой мыши в списке «Программы» и выберите «Запуск от прав администратора».

Если вам будет предложено ввести пароль администратора или подтвердить его, введите пароль или нажмите кнопку «Продолжить».

В командной строке введите следующую команду, а затем нажмите клавишу ВВОД:

Этот Sfcdetails.txt содержит записи, которые регистрируются при каждом запуске программы SFC.exe на компьютере.

Введите выход и нажмите ввод, чтобы закрыть окно командной подсказки.

Как исправить windir\Logs\CBS\CBS.log повреждён

При проверке целостности системных файлов с помощью утилиты SFC пользователь может получить сообщение об обнаружении ряда повреждённых файлов, восстановить которые не удалось. Данные о таких файлах система записывает в файл CBS.log, открыть который также не удаётся по различным причинам (в частности из-за повреждения данного файла). В данном материале я разберу, что предпринять в такой ситуации, и каким образом исправить дисфункцию windir\Logs\CBS\CBS.log повреждён на вашем ПК

Что такое CBS.log?

Системная утилита SFC, предназначенная для проверки целостности системных файлов ОС Виндовс, записывает данные по проверке и восстановлению файлов в файл CBS.log. Последний расположен по адресу %windir%LogsCBS, и может быть недоступным при попытке просмотреть его содержимое стандартным способом (через «Блокнот», файловый менеджер и др.).

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

Для решения возникшей проблемы с повреждением windir\Logs\CBS\CBS.log необходимо воспользоваться алгоритмом, который я приведу ниже.

Как исправить ошибку Windir\Logs\CBS\CBS.log

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

после чего нажать на ввод. Файл данного лога будет сохранён на рабочем столе вашего PC, и вы сможете его просмотреть через самый обычный «Блокнот». Во время данного просмотра, в частности, вы можете увидеть, какие именно файлы утилита SFC посчитала повреждёнными, и скопировать их из стабильной системы.

Если же после запуска и работы утилиты SFC система выдала текст о невозможности восстановления ряда файлов, и записи информации об них в файле CBS, тогда выполните следующее:

Запустите командную строку от имени админа, и в ней последовательно наберите (обратите внимание на пробелы, они должны быть так, как приведено мной ниже:

Дождитесь полного окончания данных процедур (могут занять полчаса-час), а затем перезагрузите ваш PC. После этого всё должно стабильно работать.

Альтернативные решения при повреждении CBS.log

В ряде случаев причиной возникновения проблемы является действие вирусных программ и осыпание диска. В первом случае рекомендуется проверить ваш PC с помощью соответствующего антивирусного инструментария (например, Доктор Веб Кюрейт, AdwCleaner и других аналогов). Затем перезагрузить ПК, и постараться вновь получить доступ к данному лог-файлу.

В случае осыпания диска, рекомендую воспользоваться такими утилитами как «Victoria HDD», «HDD Regenerator» и других, которые проверят ваш диск на наличие битых секторов, и при возможности восстановят его.

Утилита «Виктория HDD» поможет в проверке вашего диска

Вертим логи как хотим ― анализ журналов в системах Windows

Пора поговорить про удобную работу с логами, тем более что в Windows есть масса неочевидных инструментов для этого. Например, Log Parser, который порой просто незаменим.

В статье не будет про серьезные вещи вроде Splunk и ELK (Elasticsearch + Logstash + Kibana). Сфокусируемся на простом и бесплатном.

Журналы и командная строка

До появления PowerShell можно было использовать такие утилиты cmd как find и findstr. Они вполне подходят для простой автоматизации. Например, когда мне понадобилось отлавливать ошибки в обмене 1С 7.7 я использовал в скриптах обмена простую команду:

Она позволяла получить в файле fail.txt все ошибки обмена. Но если было нужно что-то большее, вроде получения информации о предшествующей ошибке, то приходилось создавать монструозные скрипты с циклами for или использовать сторонние утилиты. По счастью, с появлением PowerShell эти проблемы ушли в прошлое.

Основным инструментом для работы с текстовыми журналами является командлет Get-Content, предназначенный для отображения содержимого текстового файла. Например, для вывода журнала сервиса WSUS в консоль можно использовать команду:

Для вывода последних строк журнала существует параметр Tail, который в паре с параметром Wait позволит смотреть за журналом в режиме онлайн. Посмотрим, как идет обновление системы командой:


Смотрим за ходом обновления Windows.

Если же нам нужно отловить в журналах определенные события, то поможет командлет Select-String, который позволяет отобразить только строки, подходящие под маску поиска. Посмотрим на последние блокировки Windows Firewall:


Смотрим, кто пытается пролезть на наш дедик.

При необходимости посмотреть в журнале строки перед и после нужной, можно использовать параметр Context. Например, для вывода трех строк после и трех строк перед ошибкой можно использовать команду:

Оба полезных командлета можно объединить. Например, для вывода строк с 45 по 75 из netlogon.log поможет команда:

Журналы системы ведутся в формате .evtx, и для работы с ними существуют отдельные командлеты. Для работы с классическими журналами («Приложение», «Система», и т.д.) используется Get-Eventlog. Этот командлет удобен, но не позволяет работать с остальными журналами приложений и служб. Для работы с любыми журналами, включая классические, существует более универсальный вариант ― Get-WinEvent. Остановимся на нем подробнее.

Для получения списка доступных системных журналов можно выполнить следующую команду:


Вывод доступных журналов и информации о них.

Для просмотра какого-то конкретного журнала нужно лишь добавить его имя. Для примера получим последние 20 записей из журнала System командой:


Последние записи в журнале System.

Для получения определенных событий удобнее всего использовать хэш-таблицы. Подробнее о работе с хэш-таблицами в PowerShell можно прочитать в материале Technet about_Hash_Tables.

Для примера получим все события из журнала System с кодом события 1 и 6013.

В случае если надо получить события определенного типа ― предупреждения или ошибки, ― нужно использовать фильтр по важности (Level). Возможны следующие значения:

  • 0 ― всегда записывать;
  • 1 ― критический;
  • 2 ― ошибка;
  • 3 ― предупреждение;
  • 4 ― информация;
  • 5 ― подробный (Verbose).

Собрать хэш-таблицу с несколькими значениями важности одной командой так просто не получится. Если мы хотим получить ошибки и предупреждения из системного журнала, можно воспользоваться дополнительной фильтрацией при помощи Where-Object:


Ошибки и предупреждения журнала System.

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

Подробнее почитать про работу обоих командлетов для работы с системными журналами можно в документации PowerShell:

PowerShell ― механизм удобный и гибкий, но требует знания синтаксиса и для сложных условий и обработки большого количества файлов потребует написания полноценных скриптов. Но есть вариант обойтись всего-лишь SQL-запросами при помощи замечательного Log Parser.

Работаем с журналами посредством запросов SQL

Утилита Log Parser появилась на свет в начале «нулевых» и с тех пор успела обзавестись официальной графической оболочкой. Тем не менее актуальности своей она не потеряла и до сих пор остается для меня одним из самых любимых инструментов для анализа логов. Загрузить утилиту можно в Центре Загрузок Microsoft, графический интерфейс к ней ― в галерее Technet. О графическом интерфейсе чуть позже, начнем с самой утилиты.

О возможностях Log Parser уже рассказывалось в материале «LogParser — привычный взгляд на непривычные вещи», поэтому я начну с конкретных примеров.

Для начала разберемся с текстовыми файлами ― например, получим список подключений по RDP, заблокированных нашим фаерволом. Для получения такой информации вполне подойдет следующий SQL-запрос:

Посмотрим на результат:


Смотрим журнал Windows Firewall.

Разумеется, с полученной таблицей можно делать все что угодно ― сортировать, группировать. Насколько хватит фантазии и знания SQL.

Log Parser также прекрасно работает с множеством других источников. Например, посмотрим откуда пользователи подключались к нашему серверу по RDP.

Работать будем с журналом TerminalServices-LocalSessionManager\Operational.

Не со всеми журналами Log Parser работает просто так ― к некоторым он не может получить доступ. В нашем случае просто скопируем журнал из %SystemRoot%\System32\Winevt\Logs\Microsoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx в %temp%\test.evtx.

Данные будем получать таким запросом:


Смотрим, кто и когда подключался к нашему серверу терминалов.

Особенно удобно использовать Log Parser для работы с большим количеством файлов журналов ― например, в IIS или Exchange. Благодаря возможностям SQL можно получать самую разную аналитическую информацию, вплоть до статистики версий IOS и Android, которые подключаются к вашему серверу.

В качестве примера посмотрим статистику количества писем по дням таким запросом:

Если в системе установлены Office Web Components, загрузить которые можно в Центре загрузки Microsoft, то на выходе можно получить красивую диаграмму.


Выполняем запрос и открываем получившуюся картинку…


Любуемся результатом.

Следует отметить, что после установки Log Parser в системе регистрируется COM-компонент MSUtil.LogQuery. Он позволяет делать запросы к движку утилиты не только через вызов LogParser.exe, но и при помощи любого другого привычного языка. В качестве примера приведу простой скрипт PowerShell, который выведет 20 наиболее объемных файлов на диске С.

Ознакомиться с документацией о работе компонента можно в материале Log Parser COM API Overview на портале SystemManager.ru.

Благодаря этой возможности для облегчения работы существует несколько утилит, представляющих из себя графическую оболочку для Log Parser. Платные рассматривать не буду, а вот бесплатную Log Parser Studio покажу.


Интерфейс Log Parser Studio.

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

Вторая особенность ― возможность экспорта запроса в скрипт PowerShell.

В качестве примера посмотрим, как будет работать выборка ящиков, отправляющих больше всего писем:


Выборка наиболее активных ящиков.

При этом можно выбрать куда больше типов журналов. Например, в «чистом» Log Parser существуют ограничения по типам входных данных, и отдельного типа для Exchange нет ― нужно самостоятельно вводить описания полей и пропуск заголовков. В Log Parser Studio нужные форматы уже готовы к использованию.

Помимо Log Parser, с логами можно работать и при помощи возможностей MS Excel, которые упоминались в материале «Excel вместо PowerShell». Но максимального удобства можно достичь, подготавливая первичный материал при помощи Log Parser с последующей обработкой его через Power Query в Excel.

Приходилось ли вам использовать какие-либо инструменты для перелопачивания логов? Поделитесь в комментариях.

Читайте также:  Какую windows покупать для себя
Оцените статью