Ограничить многословность Windows CBS.log, установить уровень журнала, остановить безумие инфы в гектомегабайтах

18

В Windows 7 (Home Premium 64 Bit) записываются сотни мегабайт журналов, которые никто никогда не захочет читать C:\Windows\Logs\CBS\CBS.log. Посмотрите, мы считаем строки здесь:

$ dir C:\Windows\Logs\CBS\CBS.log
03.10.2015  16:21       726.097.704 CBS.log
$ findstr /b 2015- C:\Windows\Logs\CBS\CBS.log | find /c ", Info"
2990118
$ findstr /b 2015- C:\Windows\Logs\CBS\CBS.log | find /c /v ", Info"
102

Проще говоря, файл журнала CBS (CBS - это сокращение от Component Services , псевдоним Trusted Installer , см. Понимание обслуживания на основе компонентов , апрель 2008 г., Microsoft Technet ) на данный момент занимает 700 МБ, 200 из которых написаны за последние 30 минут. с первой записью от 9 дней назад.

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

Я хочу, чтобы это прекратилось, потому что работа с диском и процессором не служит никакой другой цели, кроме ненужного замедления работы системы .

Итак: Как мне установить уровень журнала на Предупреждение или Ошибка ? Где это задокументировано?

Плюс: представьте себе, что вместо того, чтобы пробираться через сотни мегабайт информации (чуть больше недели), вы сохраняете только ~ 100 строк ошибок ? Разве это не имеет смысла и действительно дает подсказки в устранении неполадок? Тогда у вас все еще будет возможность включить Info, если возникнет неочевидная проблема с установкой.

Обновить:

Читая комментарии, кажется, я не достаточно ясно сформулировал свой вопрос. Я не спрашиваю, как отфильтровать огромный файл журнала с помощью утилит командной строки - потому что я уже знаю, как это сделать. Я также не спрашиваю, как обращаться с файлами журналов путем ротации журналов - потому что Windows сделает это самостоятельно, когда файл достигнет неизвестного порога (хотя вы найдете людей, спрашивающих, почему файл достигает 20 гигов ). То, что я спрашиваю, - это просто как предотвратить ведение этой сумасшедшей регистрации в гектомегабайтах , возможно, установив уровень журнала выше, чем Info, Я просто не могу найти документацию о том, как установить уровень журнала, возможно, потому что он не существует публично. Но должен быть способ, потому что любое приличное программное обеспечение предоставляет способ установить уровень журнала.

Обновление 2:

Смотрите ответ, данный. Кажется, настройки реестра вступают в силу и полностью закрывают журнал. Что хорошо и намного лучше по умолчанию, чем текущий. Для того, чтобы внести изменения в реестр, вам необходимо исправить разрешения - см. Приложение.

Приложение: Разрешения на Component Based Servicingключ реестра

Когда вы попытаетесь установить EnableLogна 0, вы, вероятно, заметите, что у вас нет прав на запись HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicingи что-то под ним. Вам нужно перейти в «Редактировать» Разрешения regeditи затем вступить во владение, прежде чем вам будет разрешено вносить изменения:

Примите право собственности и дайте себе разрешение на запись

Lumi
источник
3
+5 "Безумие инфы в гектомегабайтах"
Моав
2
Журнал CBS может быть отфильтрован из командной строки, вот пример, который я использую после запуска средства проверки системных файлов, когда он запускает, выводит соответствующую информацию SFC в текстовый файл на моем рабочем столе. "findstr / c:" [SR] "% windir% \ Logs \ CBS \ CBS.log>% userprofile% \ Desktop \ sfcdetails.tx"
Моав
@Tetsujin спасибо, мне было интересно, есть ли другие команды findstr для других журналов, но Google ничего не нашел.
Моав
2
Уважаемый @Tetsujin, обратите внимание, что уровень журнала - это только информация , а не отладка , что подразумевает увеличение детализации. См. Статью Technet Как включить подробное ведение журнала CBS , ноябрь 2010 г., от joscon, чтобы узнать, что вы можете сделать ведение журнала еще более подробным. Joscon заявляет в комментарии, что «… способ, установленный по умолчанию, является наименее подробным из всего, что получает журнал.« Это недопустимо. Это та вещь, которая без необходимости тормозит вашу систему. Не то, что хотят пользователи. Возможно двоичное редактирование подойдет.
Луми
В Windows Server 2008 это в конечном итоге приведет к сбою TrustedInstaller.exe каждые 15 минут. Или, по крайней мере, я считаю, что это причина; Я отслеживал это в течение некоторого времени. Моя текущая попытка обходного пути состоит в том, чтобы создать пустой CBS.log и удалить все разрешения, отказывая в доступе. Еще не подтвердили, работает ли это, поскольку требуется некоторое время, прежде чем оно начнет происходить.
Theultramage

Ответы:

11

В качестве частичного ответа здесь приведена настройка для полной остановки регистрации: в реестре перейдите к

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing]

и установить EnableLog 0. Источник: https://technet.microsoft.com/en-us/library/cc732334%28v=ws.10%29.aspx#CBS

user1016274
источник
1
Спасибо, это похоже на работу. После внесения изменений я остановил службу TrustedInstaller, а затем установил обновление (KB3078667). Ни один персонаж не был зарегистрирован, да! Для того, чтобы внести изменения, вам необходимо взять на себя ответственность за Component Based Servicingключ; по умолчанию только TrustedInstaller может писать в него и его подчиненные. Смотрите скриншот, прикрепленный к моему вопросу.
Луми
TrustedInstaller можно найти в Панели управления> Администрирование> Службы под именем установщика модулей Windows (win7).
Огмиос
2

Журнал CBS также заполняется программой cleanmgr примерно 150-200 МБ данных, даже при чистке почти «ничего», таким образом заполняя ваш диск вместо очистки.

Я обнаружил, что журнал CBS можно очистить после остановки службы TrustedInstaller, после перезапуска установщика модулей Windows после этого служба снова запустится. Имейте в виду, что журнал используется Microsoft в некоторых программах отладки.

user679857
источник