首页 > 解决方案 > 如何清除 Windows 事件日志而不显示任何错误消息?

问题描述

我正在创建一个 Windows 事件日志清除软件。

每当您从命令行清除日志时,总会有一些日志无法清除,因为较新版本的 Windows 不再使用这些日志原本用于的服务,或者它们是重要的系统日志几乎总是被写入。

但是,当 Windows 事件实用工具发现它无法清除这些日志时,它会向用户传递一条错误消息。而且因为我正在尝试将这个批处理文件制作成一个实际的软件,为了用户体验,我宁愿屏幕上没有一堆杂乱的错误消息。

这个问题的明显答案是让批处理文件启动一个单独的后台批处理脚本来清除日志,用户不会看到任何错误消息,但是现代防病毒真的不喜欢批处理脚本,并且几乎每次都标记它们,所以我不能这样做。

我尝试创建一个 powershell 脚本(更受防病毒软件的信任)来清除日志。但是由于powershell的特性,即使完全在后台运行,没有控制台,它仍然会以VBS XMessages的形式传递错误信息。

如果它有任何用处,这是 powershell 脚本中的两行代码:

wevtutil el | Foreach-Object {wevtutil cl "$_"}
exit

对于那些想知道的人,是的,我正在使用管理权限清除日志。

我需要以下之一:

标签: windowspowershellbatch-fileloggingevent-viewer

解决方案


对于碰巧偶然发现这个问题的任何人,答案在评论部分,因为要归功于@vonPryz,他提到这Clear–EventLog会比 更好wevtutil,而且确实如此。


推荐阅读