我遇到了一個我正在處理的腳本的問題,我必須已經爲此問題專門做了4個小時,所以現在我轉到此處。我有如下代碼,縮短給大家:在Powershell中使用Get-EventSubscriber cmdlet
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控制檯會在無限循環中說:註冊-ObjectEvent:無法爲SourceIdentifier創建訂閱者,其中一個存在。這裏是錯誤圖片:Link to my dropbox, where I am hosting the picture.
我沒有足夠的代表發佈picutres呢。
我需要這個運行在一個無限循環中,所以在整天撞我的腦袋後,我認爲可能有一種方法來檢查所有創建的當前事件,並查看我是否可以檢查SourceIdentifier是否已被使用因此,我們不會創建一個新的實例。從而解決了這個問題。我想我可以通過Get-EventSubscriber命令完成,但我不太確定。這是我的第一個powershell腳本,請原諒我在代碼中看到的任何可怕的事情。謝謝。
這可能適用於我打算處理的另一件事,但是,我更新了這個問題,所以希望它更容易閱讀。謝謝 – ShadowM82