导出 Windows XP 事件日志 cmd

导出 Windows XP 事件日志 cmd

我需要将特定的 Windows XP 事件日志从事件查看器导出到“.txt”文件。

我的情况是,用户编写一个 chkdsk 程序,在下次重新启动远程机器时执行,然后他需要从 eventvwr/event log 中检索结果。

我发现这个适用于 Windows 7 的 cmd 解决方案非常完美,正是我所寻找的(我将此批次存储在远程机器中并远程执行):

cd c:\
set hr=%time:~0,2%
if "%hr:~0,1%" equ " " set hr=0%hr:~1,1%
powershell -Command "& {get-winevent -FilterHashTable @{logname='Application'; id='1001'}| ?{$_.providername -match 'wininit'} | fl timecreated, message | out-file C:\MessageServer\chkdsk_log_%date:~-4,4%%date:~-10,2%%date:~-7,2%_%hr%%time:~3,2%%time:~6,2%.txt}"

我非常喜欢它,但它在 Windows XP 上不起作用,因为它默认没有 powershell 或 wevutil 工具……而我相信我需要它们来检索这些信息。如果我错了,请告诉我。

我需要为 Windows 7 和 XP 编写一个解决方案。它必须通过批处理或 Java 解决方案来完成,但我无法在机器上安装任何额外的工具(如 powershell)来执行此操作。

你有什么想法?

祝一切顺利,并提前致谢!

卡洛斯。

答案1

我找到了这个链接: http://www.windows-commandline.com/event-viewer-command-line/

我们可以通过运行命令 eventvwr 从命令提示符或运行窗口打开事件查看器控制台。要从命令行中的日志文件中检索事件信息,我们可以使用 eventquery.vbs。此文件位于目录 C:\Windows\System32 中。

使用 eventquery.vbs,我们可以根据各种参数有选择地转储事件。这些参数包括事件源、事件 ID、事件日期、事件类型(信息、错误、警告)、事件日志文件名(系统、应用程序、安全、IE 等)。以下是有关如何使用此脚本文件的几个示例。

希望这可以帮助!

答案2

好吧!!!

我使用以下代码(与我对 Jakob 回答的评论几乎相同):

cd c:\Windows\System32
set hr=%time:~0,2%
if "%hr:~0,1%" equ " " set hr=0%hr:~1,1%
cscript //h:cscript //s
regsvr32 /s cmdlib.wsc
cscript C:\windows\system32\eventquery.vbs
Cscript Eventquery.vbs /l application /fi "ID eq 1001" /fi "SOURCE eq Winlogon" /V > C:\MessageServer\chkdsk_log_%date:~-4,4%%date:~-10,2%%date:~-7,2%_%hr%%time:~3,2%%time:~6,2%.csv

诀窍是将我放置数据的文件类型从 .log 更改为 .csv,这样我就可以使用文本编辑器打开它并获得完整的信息和完整的描述,这正是我所寻找的。

希望这也能帮助到其他人!

祝一切顺利!!!

相关内容