web-dev-qa-db-ja.com

WindowsのエクスポートXPイベントログcmd

特定のWindows XPイベントログをeventviewerから ".txt"ファイルにエクスポートする必要があります。

私のシナリオでは、ユーザーはchkdskをプログラムして、リモートマシンへの次回の再起動時に実行し、その後、eventvwr/eventログから結果を取得する必要があります。

私はWindows7用のこの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}"

私はそれがとても好きですが、デフォルトでPowerShellまたはwevutilツールがないため、Windows XPでは機能しません...そして、この情報を取得するためにそれらが必要だと思います。私が間違っている場合は私に知らせてください。

Windows7とXPの両方のソリューションをプログラムする必要があります。バッチまたはJavaソリューションで実行する必要がありますが、これを実行するためにマシンに追加のツール(PowerShellなど)をインストールすることはできません。

あなたはなにか考えはありますか?

よろしくお願いします!

カルロス。

1
CarlosLeo

私はこのリンクを見つけました: http://www.windows-commandline.com/event-viewer-command-line/

コマンドプロンプトから、またはコマンドeventvwrを実行して実行ウィンドウから、イベントビューアコンソールを開くことができます。コマンドラインでログファイルからイベント情報を取得するには、eventquery.vbsを使用できます。このファイルは、ディレクトリC:\ Windows\System32にあります。

Eventquery.vbsを使用すると、さまざまなパラメーターに基づいてイベントを選択的にダンプできます。これらのパラメータには、イベントソース、イベントID、イベント日付、イベントタイプ(情報、エラー、警告)、イベントログファイル名(システム、アプリケーション、セキュリティ、IEなど))が含まれます。以下にいくつかの例を示します。このスクリプトファイルの使用方法について。

お役に立てれば!

0
Jakob

では、OK !!!

私は次のコードを使用します(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に変更して、テキストエディターで開き、探していた完全な情報と完全な説明を取得できるようにすることでした。

これが他の誰かにも役立つことを願っています!

すべての私のベスト!!!

0
CarlosLeo