そのため、を使用して Windows イベント ログに書き込もうとしていますWrite-EventLog
。CategoryMessageFile .dll をコンパイルし、レジストリに登録しました。
私のスクリプトは大部分をイベント ログに書き込みますが、問題はイベントにカテゴリ名が表示されないことです。dll で列挙されたカテゴリ メッセージ ID が表示されます。
New-EventLog -LogName Application -Source 'test1' -CategoryResourceFile 'C:\Windows\Microsoft.NET\Framework64\v2.0.50727\test.dll' Write-EventLog -LogName Application -Source 'test1' -EntryType Information -EventId 1 -Message "$($DataSet.Tables[0].Rows[$i][6])" -Category 1
実行するとマッピングが正しいことがわかります
Get-EventLog -LogName アプリケーション -最新 3 | フォーマットリスト
ログに書き込んだばかりのイベントの [カテゴリ] の下に、正しいカテゴリ名が表示されます。
これが私のmcファイルの様子です。
;// Header
;// Categories
MessageIdTypedef=WORD
MessageId=0x1
Language=English
ETLUncategorizedError
.
MessageId=0x2
Language=English
ETLThresholdExceeded
.
MessageId=0x3
Language=English
ETLMalformattedFile
.
MessageId=0x4
Language=English
ETLWebInvocationFailure
.
では、イベント ログに番号の代わりに名前を表示するにはどうすればよいでしょうか。