如何清除 Windows 事件日志而不显示任何错误消息?

How to clear Windows event logs without showing any error messages?

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

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

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

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

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

如果有用的话,下面是 powershell 脚本中的两行代码:

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

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

我需要以下其中一项:

对于偶然发现这个问题的任何人,答案在评论部分,感谢@vonPryz,他提到 Clear–EventLogwevtutil 效果更好,而且它