Remove-EventLog
删除事件日志或取消注册事件源。
语法
Remove-EventLog
[[-ComputerName] <String[]>]
[-LogName] <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-EventLog
[[-ComputerName] <String[]>]
[-Source <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
说明
Remove-EventLog
cmdlet 从本地或远程计算机中删除事件日志文件,并取消注册日志的所有事件源。 还可以使用此 cmdlet 取消注册事件源,而无需删除任何事件日志。
包含 EventLog 名词的 cmdlet(EventLog cmdlet)仅适用于经典事件日志。 若要从使用 Windows Vista 和更高版本的 Windows作系统中的 Windows 事件日志技术的日志中获取事件,请使用 Get-WinEvent。
警告
此 cmdlet 可以删除作系统事件日志,这可能会导致应用程序故障和意外的系统行为。
示例
示例 1:从本地计算机中删除事件日志
Remove-EventLog -LogName "MyLog"
此命令从本地计算机中删除 MyLog 事件日志,并取消注册其事件源。
示例 2:从多台计算机中删除事件日志
Remove-EventLog -LogName "MyLog", "TestLog" -ComputerName "Server01", "Server02", "localhost"
此命令从本地计算机和 Server01 和 Server02 远程计算机中删除 MyLog 和 TestLog 事件日志。 该命令还会注销这些日志的事件源。
示例 3:删除事件源
Remove-EventLog -Source "MyApp"
此命令从本地计算机上的日志中删除 MyApp 事件源。 命令完成后,MyApp 程序无法写入任何事件日志。
示例 4:删除事件日志并确认作
这些命令演示如何列出计算机上的事件日志,并验证 Remove-EventLog
命令是否成功。
Get-EventLog -List
Max(K) Retain OverflowAction Entries Log
------ ------ -------------- ------- ---
15,168 0 OverwriteAsNeeded 22,923 Application
15,168 0 OverwriteAsNeeded 53 DFS Replication
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
Remove-EventLog -LogName "ZapLog"
Get-EventLog -List
Max(K) Retain OverflowAction Entries Log
------ ------ -------------- ------- ---
15,168 0 OverwriteAsNeeded 22,923 Application
15,168 0 OverwriteAsNeeded 53 DFS Replication
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
第一个命令列出本地计算机上的事件日志。
第二个命令删除 ZapLog 事件日志。
第三个命令再次列出事件日志。 ZapLog 事件日志不再显示在列表中。
示例 5:删除事件源并确认作
Get-WmiObject Win32_NTEventlogFile -Filter "logfilename='TestLog'" | foreach {$_.Sources}
MyApp
TestApp
Remove-Eventlog -Source "MyApp"
Get-WmiObject Win32_NTEventlogFile -Filter "logfilename='TestLog'"} | foreach {$_.Sources}
TestApp
这些命令使用 Get-WmiObject
cmdlet 列出本地计算机上的事件源。 可以使用这些命令来验证命令是否成功或删除事件源。
第一个命令获取本地计算机上的 TestLog 事件日志的事件源。 MyApp 是其中一个源。
第二个命令使用 的 Remove-EventLog
参数删除 MyApp 事件源。
第三个命令与第一个命令相同。 它显示 MyApp 事件源已删除。
参数
-ComputerName
指定远程计算机。 默认值为本地计算机。
键入 NetBIOS 名称、IP 地址或远程计算机的完全限定域名。 若要指定本地计算机,请键入计算机名称、点(.),或 localhost。
此参数不依赖于 Windows PowerShell 远程处理。 即使计算机未配置为运行远程命令,也可以使用 Remove-EventLog
参数。
类型: | String[] |
别名: | CN |
Position: | 1 |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Confirm
在运行 cmdlet 之前,提示你进行确认。
类型: | SwitchParameter |
别名: | cf |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-LogName
指定事件日志。 输入一个或多个事件日志的日志名称,用逗号分隔。 日志名称是 Log 属性的值,不允许 LogDisplayName,不允许通配符。 此参数是必需的。
类型: | String[] |
别名: | LN |
Position: | 0 |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-Source
指定此 cmdlet 取消注册的事件源。 输入源名称,而不是可执行文件名称,用逗号分隔。
类型: | String[] |
别名: | SRC |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-WhatIf
显示 cmdlet 运行时会发生什么情况。 cmdlet 未运行。
类型: | SwitchParameter |
别名: | wi |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
输入
None
不能通过管道将输入传递给此 cmdlet。
输出
None
此 cmdlet 不返回任何输出。
备注
若要在 Windows Vista 和更高版本的 Windows作系统上使用
Remove-EventLog
,请使用“以管理员身份运行”选项启动 Windows PowerShell。如果删除事件日志,然后重新创建日志,将无法注册相同的事件源。 使用事件源将条目写入原始日志的应用程序将无法写入新日志。
注销特定日志的事件源时,可能会阻止事件源在其他事件日志中写入条目。