2

新しい EventLog EventSource を作成しており、独自のカスタム カテゴリ セットを使用しています。

私は現在、次のように C# コードでこれを行っています。

var eventSourceData = new EventSourceCreationData(sourceName, logName)
                                      {
                                          CategoryCount = AllCategories.Count(),
                                          CategoryResourceFile = resourceFilePath,
                                          ParameterResourceFile = resourceFilePath,
                                          MessageResourceFile = resourceFilePath
                                      };

EventLog.CreateEventSource(eventSourceData);

これを次のようなpowershellスクリプトに変換しました:

New-eventlog -logname $Log -ComputerName $ComputerName -Source $Source -CategoryResourceFile $categoryDllPath -MessageResourceFile $categoryDllPath -ErrorVariable Err -CategoryCount 20

Notr -CategoryCount 20最後に、私のスクリプトはこの引数で失敗し、有効なパラメーターではないと言います。(そうではないようです)

私の質問は、Powershell を使用して、ログが正しく機能するように CategoryCount を指定するにはどうすればよいですか?

本当にありがとう。

エラーメッセージはA parameter cannot be found that matches parameter name 'CategoryCount'.

4

1 に答える 1

2

私が見る限り、New-EventLogCategoryCount はサポートされていません。

ただし、Powershell で .NET クラスを直接使用することもできるため、次のようなものが機能するはずです。

$eventSourceData = new-object System.Diagnostics.EventSourceCreationData("$SourceName", "$logName")  
$eventSourceData.CategoryCount = 20
$eventSourceData.CategoryResourceFile = $CategoryDllPath
$eventSourceData.MessageResourceFile = $CategoryDllPath

If (![System.Diagnostics.EventLog]::SourceExists($eventSourceData.Source))
{      
[System.Diagnostics.EventLog]::CreateEventSource($eventSourceData)  
} 
于 2013-07-07T09:46:46.423 に答える