nix*_*xda 17 windows-7 event-viewer
在 Windows 7 下,您可以打开事件查看器来浏览多个类别。您还可以通过单击右侧窗格中的清除日志...来清除单个类别。
假设我想清除所有类别,我是否应该一一点击并清除它们?
有几十个。有没有更快的方法?也许使用PowerShell?
Log*_*man 19
打开 cmd 提示符或创建批处理脚本并“以管理员身份运行”:
for /f %x in ('wevtutil el') do wevtutil cl "%x"
Run Code Online (Sandbox Code Playgroud)
用于清除所有事件日志的 Powershell 代码:
wevtutil el | Foreach-Object {Write-Host "Clearing $_"; wevtutil cl "$_"}
Run Code Online (Sandbox Code Playgroud)
或在脚本中挑选:
wevtutil.exe cl Analytic
wevtutil.exe cl Application
wevtutil.exe cl DirectShowFilterGraph
wevtutil.exe cl DirectShowPluginControl
wevtutil.exe cl EndpointMapper
wevtutil.exe cl ForwardedEvents
wevtutil.exe cl HardwareEvents
wevtutil.exe cl Internet Explorer
wevtutil.exe cl Key Management Service
wevtutil.exe cl MF_MediaFoundationDeviceProxy
wevtutil.exe cl "Media Center"
wevtutil.exe cl MediaFoundationDeviceProxy
wevtutil.exe cl MediaFoundationPerformance
wevtutil.exe cl MediaFoundationPipeline
wevtutil.exe cl MediaFoundationPlatform
wevtutil.exe cl Microsoft-IE/Diagnostic
wevtutil.exe cl Microsoft-IEFRAME/Diagnostic
wevtutil.exe cl Microsoft-PerfTrack-IEFRAME/Diagnostic
wevtutil.exe cl Microsoft-PerfTrack-MSHTML/Diagnostic
Run Code Online (Sandbox Code Playgroud)
等等...
您可以通过在 cmd 提示符或 powershell 中键入以下内容来获取所有事件类别名称的完整列表:
wevtutil el
Run Code Online (Sandbox Code Playgroud)
更多信息可以在MS TechNet上找到。例子:
将事件从系统日志导出到 C:\backup\system0506.evtx:
wevtutil epl System C:\backup\system0506.evtx
Run Code Online (Sandbox Code Playgroud)
将应用程序日志中的所有事件保存到 C:\admin\backups\a10306.evtx 后,清除它们:
wevtutil cl Application /bu:C:\admin\backups\a10306.evtx
Run Code Online (Sandbox Code Playgroud)
Ƭᴇc*_*007 18
无法通过 GUI 一次性清除所有日志。至少我从来没有发现过。:)
这是一个批处理文件,它使用WEVTUTIL.exe将日志列出到一个文本文件中,然后使用该文本文件删除每个日志。
WEVTUTIL EL > .\LOGLIST.TXT
for /f %%a in ( .\LOGLIST.TXT ) do WEVTUTIL CL "%%a"
del .\LOGLIST.TXT
timeout 30
Run Code Online (Sandbox Code Playgroud)
如果您觉得将所有这些都放在一个批处理文件中不安全,那么您可以将其保存到两个单独的文件中,然后一个接一个地运行:(
“Nuke”批处理如果没有找到“loglist.txt”就会出错" 在其当前目录中。)
@ECHO OFF
REM Source: https://superuser.com/a/655185/389368
WEvtUtil.exe enum-logs > .\LOGLIST.TXT
Run Code Online (Sandbox Code Playgroud)
@ECHO OFF
REM Source: https://superuser.com/a/655185/389368
for /f %%a in ( .\LOGLIST.TXT ) do WEvtUtil.exe clear-log "%%a"
del .\LOGLIST.TXT
timeout 30
Run Code Online (Sandbox Code Playgroud)
正如 Logman 在他的回答中指出的那样,这可以通过使用类似(%'s double for batch file)进一步缩短(并消除对中间文本文件的需要):
for /f %%a in ('WEVTUTIL EL') do WEVTUTIL CL "%%a"
timeout 30
Run Code Online (Sandbox Code Playgroud)
无论您选择哪种方式,请确保您“以管理员身份运行”。
我找到的最简单的解决方案。从 Vista 开始使用它。:)
| 归档时间: |
|
| 查看次数: |
82873 次 |
| 最近记录: |