1

別のサーバーでカスタム イベント ログを作成する必要があるという要件があります。ローカル マシンでイベント ログを作成するコマンドはありますが、リモート サーバーには必要です。ローカル マシンでイベント ログを作成するコマンドは次のとおりです。

powershell -command "if([System.Diagnostics.EventLog]::SourceExists('MySource')){Write 'Eventlog already exists'}else{[System.Diagnostics.EventLog]::CreateEventSource('MySource','MyCustomLog')}"

リモートサーバーにも同じことが必要です。

可能であればコードを貼り付けてください。

ありがとう。

4

2 に答える 2

2

Posh Comm の投稿から

Invoke-command -computername server,server -scriptblock {if([System.Diagnostics.EventLog]::SourceExists('MySource')){Write 'Eventlog already exists'}else{[System.Diagnostics.EventLog]::CreateEventSource('MySource','MyCustomLog')}}

または、Shay Levy のよりエレガントな例:

New-EventLog -LogName application -Source MySource,MyCustomLog -ComputerName PC1 -ErrorAction SilentlyContinue 
Write-EventLog -LogName application -Source MySource -EntryType information -Message test -EventId 1234 -Computer PC1
于 2011-06-02T06:54:06.287 に答える
0

最後がマシン名である 3 つの引数を持つCreateEventSourceもあります。したがって、次のようになります。

if([System.Diagnostics.EventLog]::SourceExists('MySource', 'MyMachine'))
{
  Write 'Eventlog already exists'
}
else
{
  [System.Diagnostics.EventLog]::CreateEventSource('MySource','MyCustomLog', 'MyMachine')
}

3 つの引数を持つメソッドは廃止されていることに注意してください。さらにいくつかの作業を行うと、マシン名も指定できるEventSourceCreationDataを受け取るバリアントを使用できます。

于 2011-05-31T17:37:33.553 に答える