質問: イベント変数に関するserver 2008電子メール server 2008の新機能の1つは、イベントログの特定のイベントにタスクを添付する機能です。使用可能なアクションの1つは、smtpサーバーを介して電子メールを送信することです。これはうまく機能していますが、メッセージ本文にイベントコンテンツを配置できると理想的です。 $ eventdescriptionと%eventdescription%を使用してみましたが、これらは暗闇の中でのショットです。少しでもグーグルすると結果は得られません。これが可能かどうか誰かが知っていますか?pdate:以下のsparksの提案は正しい方向への一歩だと思いますが、その方法はすべての値に対して機能するとは限りません。たとえば、図のようにrecordid、severity、およびchannelをプルできますが、同じ方法を使用してeventid、または最も重要なのは説明を取得できません。これは、1つのイベントからの生のxmlです。[event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"] [system] [provider name="dfsr" /] [eventid qualifiers="16384"]4412[/eventid] [level]4[/level] [task]0[/task] [keywords]0x80000000000000[/keywords] [timecreated systemtime="2009-05-14t18:18:09.000z" /] [eventrecordid]45692[/eventrecordid] [channel]dfs replication[/channel] [computer]servername.domain.com[/computer] [security /] [/system] [eventdata] [data]9046c3f4-843e-4a53-b941-4b20764072e5[/data] [data]d:\departments\geomatics\plan quality\data processing\cg3533017 2009-05-13 kt fixed[/data] [data]d:\departments[/data] [data]{26d5f604-e603-4f87-8ec3-de9a945da8fd}-v927199[/data] [data]departments[/data] [data]domain.ca\files\departments[/data] [data]b8242ce2-f5eb-47da-ba5b-1dd2f7ee3ab9[/data] [data]dfaa7a54-66cb-4c31-81a0-0f861382c32c[/data] [data]cg3533017 2009-05-13-{26d5f604-e603-4f87-8ec3-de9a945da8fd}-v927199[/data] [/eventdata] [/event] eventqueryにvaluequeryを使用しようとしましたが、データが返されません。
回答: 私はこれについて少し違った方法で取り組みましたが、このアプローチでは、カスタムフィルターに一致する新しいイベントでメールが生成され、すべてのイベントの詳細がメール本文に含まれます。1)必要なフィルターを使用して、イベントビューアーで「カスタムビュー」を作成します。2)ビューを取得すると、「このカスタムビューにタスクをアタッチ...」へのリンクが表示されます。c:\ sendmailに抽出したここ( http://caspian.dotconf.net/menu/software/sendemail/ )からsendmail.exeを使用することを選択しました。その理由は、microsoftの「電子メールの送信」アクションにsmtp認証に関する問題があり、明らかにserver 2012にも存在しないことです。そのため、私の場合、カスタムビューにタスクをアタッチするときに[プログラムの開始]を選択しました。ただし、xmlとして編集するので、guiで入力する必要はありません。3)新しいタスクをxmlにエクスポートします。後で編集します。4)c:\ sendmailフォルダの下に次の3行を含む「mail-event.bat」ファイルを作成します。c:\windows\system32\wevtutil.exe qe application /f:text /q:"<querylist><query id='0' path='application'><select path='application'>*[system[(eventrecordid=%1)]]</select></query></querylist>" > c:\sendmail\%1.log c:\sendmail\sendemail.exe -s <smtp_server> -f <from> -xu <user> -xp <pass> -t <to> -u "<subject>" -o message-file=c:\sendmail\%1.log del c:\sendmail\%1.log 明らかに、「smtp_server」、「from」、「user」、「pass」、「to」、「subject」を目的の値に置き換えます。これにより、c:\ sendmailの下にそのイベントのすべての詳細を含む「$(eventrecordid).log」ファイルが作成され、メールで送信されてから削除されます。イベントビューアに移動し、アプリケーションログでイベントを開き、[詳細]タブに切り替えて[xmlビュー]を選択し、eventrecordidを探すことで、バッチファイルが機能するかどうかをテストできます。その整数をコピーして、コマンドラインから実行します。c:\ sendmail> log-event.bat 53522もちろん、52222をeventrecordidノードの値に置き換えます。メールを受け取ったら、幸せな場所に行ってください。注:wevtutil.exeのコマンドラインに「アプリケーション」という文字列が数回表示されることに気づいたかもしれません。これは、カスタムビューで直接指定しても機能しないようです。カスタムビューは、すべてアプリケーションログ内にあるイベントのサブセットです。たとえば、システムログからイベントをメールで送信しようとしている場合、それを機能させるために調整する必要があります。5)エクスポートしたxmlを編集します。次の2つの変更を行います。まず、次の「valuequeries」ノードを「eventtrigger」ノードの下のxmlに追加します。<eventtrigger> <enabled>true</enabled> <subscription>...snip...</subscription> <valuequeries> <value name="eventrecordid">event/system/eventrecordid</value> </valuequeries> </eventtrigger> 注:上記では、作成したカスタムビューに基づいて入力される「サブスクリプション」情報を省略しました。 「サブスクリプション」をxmlにコピーしないでください。次に、actionsノードを次のように置き換えます。<actions context="author"> <exec> <command>c:\sendmail\mail_event.bat</command> <arguments>$(eventrecordid)</arguments> </exec> </actions> これで、カスタムビューに新しいイベントが表示され、メール通知が自動的に届くはずです。ウフー!