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


18

在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

简而言之,CBS日志文件(CBS是基于组件的服务的缩写,别名Trusted Installer,请参阅了解基于组件的服务,2008年4月,Microsoft Technet),占用700 MB的空间,其中200字节是在最近30分钟内写入的,第一个条目来自9天前。

总共有将近300万个条目,几乎所有条目都在loglevel Info上。请注意,这是一种人类可读的日志文件格式,显然不适用于机器处理。不了解您,但是我默认情况下应该打扰考虑300万行信息的想法令我感到有点荒唐。

我希望此操作停止,因为磁盘和CPU活动除了不必要地降低系统速度之外没有其他用途。

因此:如何将日志级别设置为“ 警告”或“ 错误”这在哪里记录?

加:想像一下,如果不浪费数百兆的Info(一周多一点),您只会保留〜100条Error行?难道不是很有意义,实际上可以提供故障排除的线索吗?然后,您仍然可以选择打开信息,以防出现非显而易见的安装问题。

更新:

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

更新2:

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

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

尝试将其设置EnableLog为时0,您可能会注意到您对该目录没有写权限,也没有HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing下面的内容。您需要进入“编辑»权限” regedit,然后获得所有权,然后才能进行编辑:

取得所有权并授予自己写许可权


3
+5“百兆信息疯狂”
摩押人

2
可以从命令提示符中过滤CBS日志,这是我运行系统文件检查器后使用的一个示例,当它运行时,它将相关的SFC信息输出到我的桌面上的文本文件中。“ findstr / c:” [SR]“%windir%\ Logs \ CBS \ CBS.log>%userprofile%\ Desktop \ sfcdetails.tx”
摩押人

@Tetsujin谢谢,想知道是否还有其他日志的findstr命令,但是google什么也没找到。
摩押人

2
尊敬的@Tetsujin,请注意,日志级别仅为Info,而不是Debug,这意味着详细程度有所提高。请参阅joscon在Technet上发表的文章如何启用冗长的CBS日志记录(2010年11月),以了解可以使日志记录更加冗长。乔斯孔(Joscon)在评论中说,»……默认设置的方式是日志获取的最详细信息。«这是不可接受的。这是不必要地降低系统速度的事情。不是用户想要的。也许可以进行二进制编辑。
Lumi 2015年

在Windows Server 2008上,这最终将使TrustedInstaller.exe每15分钟开始崩溃。或者至少,我认为这是原因。我已经追踪了一段时间了。我当前的解决方法是创建一个空的CBS.log并删除所有权限,拒绝访问。尚未确认是否可行,因为它需要一些正常运行时间才能开始。
theultramage

Answers:


11

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

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

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


1
谢谢,这似乎有效。完成编辑后,我停止了TrustedInstaller服务,然后安装了更新(KB3078667)。没有一个字符被记录,是的!为了进行编辑,您需要拥有Component Based Servicing密钥的所有权;默认情况下,只有TrustedInstaller可以写入它及其下标。请参阅我的问题所附的屏幕截图。
Lumi 2015年

可以在控制面板>管理工具> 服务下,在Windows模块安装程序名称(win7)下找到TrustedInstaller 。
Ogmios '16

2

即使几乎“什么也没有清理”,cleanmgr也会用大约150-200Mb的数据填充CBS日志,从而填充磁盘而不是清理磁盘。

我发现在停止TrustedInstaller服务后可以清除CBS日志,此后重新启动Windows模块安装程序将再次启动该服务。请记住,Microsoft在某些调试程序中使用了该日志。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.