我正在处理的脚本有问题,我必须已经花了 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 脚本,所以请原谅我在我的代码中看到的任何可怕的东西。谢谢你。