限制 Windows CBS.log 详细程度,设置日志级别,停止 hectomegabyte 信息的疯狂

Lum*_*umi 19 windows windows-7 installer

在 Windows 7(家庭高级版 64 位)上,数百兆字节的日志被写入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
Run Code Online (Sandbox Code Playgroud)

直截了当地说,CBS 日志文件(CBS 是基于组件的服务的缩写,别名Trusted Installer,请参阅了解基于组件的服务,2008 年 4 月,Microsoft Technet)目前占用 700 MB,其中 200 MB 是在过去 30 分钟内写入的,第一个条目来自 9 天前。

总共接近 300 万个条目,并且几乎全部在 loglevel Info。请注意,这是一种人类可读的日志文件格式,显然不适用于机器处理。不知道你是怎么想的,但是默认情况下我应该费心考虑 300 万行Info的想法让我觉得近乎荒谬。

我希望这停止,因为磁盘和 CPU 活动除了不必要地减慢系统速度外没有任何用处。

那么:如何将日志级别设置为WarningError这是在哪里记录的?

加:想象一下,而不是涉过数百兆信息(一周多一点),你只保留 ~100错误行?这难道不只是有意义并且实际上提供故障排除的线索吗?如果出现不明显的安装问题,您仍然可以选择打开信息

更新:

阅读评论,似乎我没有足够清楚地表达我的问题。我不是在问如何使用命令行实用程序过滤庞大的日志文件 - 因为我已经知道如何做到这一点。我也不是在问如何以日志轮换的方式处理日志文件 - 因为当文件达到某个未知阈值时,Windows 会自行处理(尽管您会发现有人问为什么文件达到 20 gigs)。我要问的只是如何阻止这种疯狂的 hectomegabyte 日志记录首先发生,可能是通过将日志级别设置为高于Info. 我只是找不到有关如何设置日志级别的文档,可能是因为它不公开存在。但是一定有办法,因为任何像样的软件都提供了一种设置日志级别的方法。

更新 2:

请参阅给出的答案。注册表设置似乎生效并完全关闭日志。这是好的,并且比当前的默认设置好得多。为了进行注册表编辑,您需要修复权限 - 请参阅附录。

附录:Component Based Servicing注册表项的权限

当您尝试设置EnableLog为 时0,您可能会注意到您没有对它HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing下面的内容和内容的写访问权限。您需要进入“编辑»权限” regedit,然后在被允许进行编辑之前取得所有权:

取得所有权并授予自己写权限

use*_*274 12

作为部分答案,这里是完全停止日志记录的设置:在注册表中,导航到

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing]
Run Code Online (Sandbox Code Playgroud)

并设置EnableLog 0。来源:https : //technet.microsoft.com/en-us/library/cc732334%28v=ws.10%29.aspx#CBS