删除事件日志或注销事件源。
语法
Remove-EventLog [-LogName] <string[]> [[-ComputerName] <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>] Remove-EventLog [[-ComputerName] <string[]>] [-Source <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>]
说明
Remove-EventLog cmdlet 从本地或远程计算机中删除事件日志文件以及注销该日志的所有事件源。您还可以使用此 cmdlet 注销事件源,而无需删除任何事件日志。
包含 EventLog 名词的 cmdlet (EventLog cmdlet) 仅适用于传统事件日志。要从使用 Windows Vista 以及 Windows 更高版本中的 Windows 事件日志技术的日志中获取事件,请使用 Get-WinEvent。
参数
-ComputerName <string[]>
指定远程计算机。默认值为本地计算机。
键入远程计算机的 NetBIOS 名称、Internet 协议 (IP) 地址或完全限定的域名。要指定本地计算机,请键入计算机名称、句点 (.) 或“localhost”。
此参数不依赖于 Windows PowerShell 远程处理。即使您的计算机未配置为运行远程命令,您也可以使用 Remove-EventLog 的 ComputerName 参数。
是否为必需? |
false |
位置? |
2 |
默认值 |
|
是否接受管道输入? |
false |
是否接受通配符? |
false |
-LogName <string[]>
指定事件日志。输入一个或多个事件日志的日志名称(Log 属性的值,而不是 LogDisplayName),名称之间用逗号分隔。不允许使用通配符。此参数是必需的。
是否为必需? |
true |
位置? |
1 |
默认值 |
|
是否接受管道输入? |
false |
是否接受通配符? |
false |
-Source <string[]>
注销指定的事件源。输入用逗号分隔的源名称(不是可执行文件名称)。
是否为必需? |
false |
位置? |
named |
默认值 |
|
是否接受管道输入? |
false |
是否接受通配符? |
false |
-Confirm
在执行命令之前提示您进行确认。
是否为必需? |
false |
位置? |
named |
默认值 |
|
是否接受管道输入? |
false |
是否接受通配符? |
false |
-WhatIf
描述如果执行该命令会发生什么情况(无需实际执行该命令)。
是否为必需? |
false |
位置? |
named |
默认值 |
|
是否接受管道输入? |
false |
是否接受通配符? |
false |
<CommonParameters>
此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.
输入和输出
输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。
输入 |
None 不能通过管道将输入传递给此 cmdlet。 |
输出 |
None 此 cmdlet 不返回任何输出。 |
说明
若要在 Windows Vista 以及 Windows 的更高版本上使用 Remove-EventLog,请使用“以管理员身份运行”选项启动 Windows PowerShell。
如果删除了事件日志然后又重新创建该日志,则无法注册相同的事件源。使用这些事件源将条目写入原始日志的应用程序将无法再写入新日志。
当注销特定日志的事件源时,该事件源将无法在其他事件日志中写入条目。
示例 1
C:\PS>remove-eventlog -logname MyLog 说明 ----------- 此命令从本地计算机中删除 MyLog 事件日志并注销其事件源。
示例 2
C:\PS>remove-eventlog -logname MyLog, TestLog -computername Server01, Server02, localhost 说明 ----------- 此命令从本地计算机(“localhost”)以及远程计算机 Server01 和 Server02 中删除 MyLog 和 TestLog 事件日志。该命令也将注销这些日志的事件源。
示例 3
C:\PS>remove-eventlog -source MyApp 说明 ----------- 此命令从本地计算机上的日志中删除 MyApp 事件源。该命令完成后,MyApp 程序将无法写入任何事件日志。
示例 4
C:\PS>get-eventlog -list Max(K) Retain OverflowAction Entries Log ------ ------ -------------- ------- --- 15,168 0 OverwriteAsNeeded 22,923 Application 15,168 0 OverwriteAsNeeded 53 DFS Replication 512 7 OverwriteOlder 0 Directory Service 15,168 7 OverwriteOlder 0 Hardware Events 512 7 OverwriteOlder 0 Internet Explorer 20,480 0 OverwriteAsNeeded 0 Key Management Service 30,016 0 OverwriteAsNeeded 50,060 Security 15,168 0 OverwriteAsNeeded 27,592 System 15,360 0 OverwriteAsNeeded 18,355 Windows PowerShell 15,168 7 OverwriteAsNeeded 12 ZapLog C:\PS> remove-eventlog -logname ZapLog C:\PS> get-eventlog -list Max(K) Retain OverflowAction Entries Log ------ ------ -------------- ------- --- 15,168 0 OverwriteAsNeeded 22,923 Application 15,168 0 OverwriteAsNeeded 53 DFS Replication 512 7 OverwriteOlder 0 Directory Service 15,168 7 OverwriteOlder 0 Hardware Events 512 7 OverwriteOlder 0 Internet Explorer 20,480 0 OverwriteAsNeeded 0 Key Management Service 30,016 0 OverwriteAsNeeded 50,060 Security 15,168 0 OverwriteAsNeeded 27,592 System 15,360 0 OverwriteAsNeeded 18,355 Windows PowerShell 说明 ----------- 这些命令说明如何列出计算机上的事件日志并验证 Remove-EventLog 命令是否成功。 第一条命令列出本地计算机上的事件日志。 第二条命令删除 ZapLog 事件日志。 第三条命令重新列出事件日志。ZapLog 事件日志将不再显示在列表中。
示例 5
C:\PS>get-wmiobject win32_nteventlogfile -filter "logfilename='TestLog'" | foreach {$_.sources} MyApp TestApp C:\PS> remove-eventlog -source MyApp C:\PS> get-wmiobject win32_nteventlogfile -filter "logfilename='TestLog'} | foreach {$_.sources} TestApp 说明 ----------- 这些命令使用 Get-WmiObject cmdlet 列出本地计算机上的事件源。可以使用这些命令验证用于删除事件源的命令是否成功。 第一条命令获取本地计算机上 TestLog event 日志的事件源。MyApp 就是其中一个事件源。 第二条命令使用 Remove-EventLog 的 Source 参数删除 MyApp 事件源。 第三条命令与第一条命令相同。它显示 MyApp 事件源已删除。
另请参阅