私が取り組んでいるスクリプトで問題が発生しています。この問題にはすでに 4 時間ほど費やしているはずなので、ここに戻ります。私は次のコードを持っています。
while($true){
$seclog = Get-EventLog -List | Where-Object {$_.Log -eq 'Security'} ;
Register-ObjectEvent -InputObject $seclog -SourceIdentifier NewEventLogEnter -EventName EntryWritten -Action {
$entry = $event.SourceEventArgs.Entry
if($entry.EventID -eq 4776){
if($entry.EntryType -eq 'FailureAudit'){
$i++;
}
elseif($entry.EntryType -eq 'SuccessAudit'){
[System.Windows.Forms.MessageBox]::Show("$i")
break;
}
}
}
}
スクリプトを実行すると、必要に応じて機能しますが、powershell コンソールが無限ループに陥り、「Register-ObjectEvent: could not createsubscriber for SourceIdentifier, one exists .」というメッセージが表示されます。エラーの写真は次のとおりです。写真をホストしているドロップボックスへのリンク。
私は写真を投稿するのに十分な担当者をまだ持っていません.
これを無限ループで実行する必要があるので、一日中頭を悩ませた後、現在作成されているすべてのイベントを確認し、SourceIdentifier が既に使用されているかどうかを確認できるかどうかを確認する方法があるのではないかと考えました。新しいインスタンスを作成しません。したがって、問題を解決します。Get-EventSubscriberコマンドを使用してこれを実行できると考えましたが、よくわかりません。これは私の最初の powershell スクリプトです。ありがとうございました。