当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何使用 PowerShell 或 Wevtutil 清除 Windows 事件日志

作者:精品下载站 日期:2024-12-14 22:49:55 浏览:16 分类:玩电脑

如何使用 PowerShell 或 Wevtutil 清除 Windows 事件日志


在某些情况下,有必要从计算机或服务器上的 Windows 事件日志中删除所有条目。当然,您可以从事件查看器控制台 GUI - Eventvwr.msc 清除系统日志(右键单击要清除的日志,然后选择清除日志)。然而,从 Vista 开始,Windows 已经针对不同的系统组件使用了数十个日志,并且在事件查看器中手动清除所有日志非常耗时。从命令提示符清除日志要容易得多:使用 PowerShell 或内置控制台工具 wevtutil

[玩转系统] 如何使用 PowerShell 或 Wevtutil 清除 Windows 事件日志

使用 PowerShell 清除事件日志

如果您安装了 PowerShell 3(默认情况下安装在 Windows 8/Windows Server 及更高版本中),您可以使用 Get-EventLogClear-EventLog cmdlet 获取事件日志列表并清除它们。

使用管理员权限启动 PowerShell 控制台,并使用以下命令显示系统中所有标准事件日志的列表,以及最大大小和事件数量。

Get-EventLog -LogName *

[玩转系统] 如何使用 PowerShell 或 Wevtutil 清除 Windows 事件日志

要清除特定事件日志(例如系统日志)中的所有条目,请使用以下命令:

Clear-EventLog -LogName System

结果,该日志的所有事件都将被删除,并且只有一个事件 ID 为 104 且消息为“系统日志文件已清除

[玩转系统] 如何使用 PowerShell 或 Wevtutil 清除 Windows 事件日志

要清除所有事件日志,您必须将日志名称重定向到管道,但不幸的是,这是禁止的。因此,我们必须使用 ForEach 循环:

Get-EventLog -LogName * | ForEach { Clear-EventLog $_.Log }

因此,所有标准事件日志都将被清除。

使用控制台工具WevtUtil.exe清除日志

为了处理事件,Windows 中长期以来一直存在一个功能强大的命令提示符实用程序 WevtUtil.exe。乍一看,它的语法有点复杂。例如,这里返回实用程序的帮助:

[玩转系统] 如何使用 PowerShell 或 Wevtutil 清除 Windows 事件日志

要显示系统中注册的日志列表,请运行以下命令:

WevtUtil enum-logs

或其较短版本:

WevtUtil el

屏幕上将显示相当令人印象深刻的日志列表。

注意。您可以使用以下命令计算有多少日志:WevtUtil el |Measure-Object。就我而言,Windows 10 中有 1,053 个不同的日志。

[玩转系统] 如何使用 PowerShell 或 Wevtutil 清除 Windows 事件日志

您可以获取特定日志的详细信息:

WevtUtil gl Setup

[玩转系统] 如何使用 PowerShell 或 Wevtutil 清除 Windows 事件日志

以下是清除特定日志中的事件的方法:

WevtUtil cl Setup

在清除事件之前,您可以通过保存到文件来备份它们:

WevtUtil cl Setup /bu:SetupLog_Bak.evtx

要一次清除所有日志,您可以使用 Get-WinEvent PowerShell cmdlet 获取所有日志对象并使用 Wevtutil.exe 来清除它们:

Get-WinEvent -ListLog * -Force | % { Wevtutil.exe cl $_.LogName }

或者

Wevtutil el | ForEach { wevtutil cl “$_”}

注意。在我们的示例中,由于访问错误,我无法清除 3 个日志。值得尝试使用事件查看器清除它们。

[玩转系统] 如何使用 PowerShell 或 Wevtutil 清除 Windows 事件日志

您也可以使用标准命令提示符清除日志:

for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯