Lógica 'e' do NxLog

Lógica 'e' do NxLog

Atualmente tenho o NxLog em execução em vários controladores de domínio retirando eventos de login/logout.

Exec if $TargetUserName =~ /(\S+\$|user1|user2|user3|user4)/ drop(); \
     else if ($EventID == 4624 or $EventID == 4625 or $EventID == 4648 or $EventID == 4768) $raw_event = "Time:" + $EventTime + ", EventID:" + $EventID + ", Keyword:" + $Status + ", LogonType:" + $LogonType + ", User:" + $TargetDomainName + "\\" + $TargetUserName + ", IPAddr:" + $IPAddress; \
     else if $raw_event =~ /^(.+)(Detailed Authentication Information:|Additional Information:)/ $raw_event = $1; if $raw_event =~ s/\t/  /g {}

Embora a configuração acima funcione bem, no fato de ignorar nomes de usuário com $ nele e também aqueles que eu especifiquei, quero ignorar apenas o ID do evento 4624 com esses nomes de usuário para que ainda possa ver logins com falha. Achei que a configuração a seguir funcionaria, mas continuo recebendo erros de sintaxe.

Exec if ($EventID == 4624 and $TargetUserName =~ /(\S+\$|user1|user2|user3|user4)/ drop(); \
     else if ($EventID == 4624 or $EventID == 4625 or $EventID == 4648 or $EventID == 4768) $raw_event = "Time:" + $EventTime + ", EventID:" + $EventID + ", Keyword:" + $Status + ", LogonType:" + $LogonType + ", User:" + $TargetDomainName + "\\" + $TargetUserName + ", IPAddr:" + $IPAddress; \
     else if $raw_event =~ /^(.+)(Detailed Authentication Information:|Additional Information:)/ $raw_event = $1; if $raw_event =~ s/\t/  /g {}

Qualquer ajuda seria muito apreciada.

Editar:Para completar, abaixo estava minha configuração final para descartar nomes de usuário com $ e, em seguida, eventos bem-sucedidos/Kerb em várias contas que eram tagarelas e com as quais eu não me importava.

Exec if $TargetUserName =~ /(\S+\$)/ drop(); \
     else if ($EventID == 4624 and $TargetUserName =~ /(user1|user2|user3|user4)/) drop(); \
     else if ($EventID == 4648 and $TargetUserName =~ /(user1|user2|user3|user4)/) drop(); \
     else if ($EventID == 4624 or $EventID == 4625 or $EventID == 4648 or $EventID == 4768) $raw_event = "Time:" + $EventTime + ", EventID:" + $EventID + ", Keyword:" + $Status + ", LogonType:" + $LogonType + ", User:" + $TargetDomainName + "\\" + $TargetUserName + ", IPAddr:" + $IPAddress; \
     else if $raw_event =~ /^(.+)(Detailed Authentication Information:|Additional Information:)/ $raw_event = $1; if $raw_event =~ s/\t/  /g {}

Responder1

A causa do erro de sintaxe é que os colchetes não estão emparelhados corretamente. Deveria ser assim:

Exec if ($EventID == 4624 ... ) drop(); 
        ^                     ^

informação relacionada