Adicione uma regra de auditoria a uma unidade organizacional do Active Directory com PowerShell

Adicione uma regra de auditoria a uma unidade organizacional do Active Directory com PowerShell

No script do PowerShell abaixo, estou coletando regras de auditoria do Active Directory para uma UO específica, verificando se existe alguma regra de auditoria para uma falha e adicionando uma regra de auditoria de falha, se não existir. Tudo funciona até a última etapa de adição da regra de falha. Não há mensagem de erro, mas a nova regra não aparece no Active Directory.

#find the needed OU
Import-Module activedirectory
Set-Location ad:
dir

#get an acl object based for the OU
$acl = Get-Acl -Path "DC=something,DC=somethingElse" -Audit
$auditRules = $acl.GetAuditRules(1,1,[System.Security.Principal.SecurityIdentifier])
$foundFailRule = $false
foreach ($rule in $auditRules) {
    if ($rule.AuditFlags -ieq "Failure") {
        $foundFailRule = $true
        break
    }
}
if ($foundFailRule -eq $true) {
    Write-Host "Found fail rule.  No action needed."
}
else {
    #find the IdentityReference from the first audit rule entry in the OU
    $identityReference = $auditRules[0].IdentityReference
    $activeDirectoryRights = "GenericAll"
    $auditFlags = "Failure"
    $failAuditRule = New-Object System.DirectoryServices.ActiveDirectoryAuditRule $identityReference, $activeDirectoryRights, $auditFlags
    $acl.AddAuditRule($failAuditRule)
}

Não tenho certeza se isso é significativo, mas percebi que nas regras de auditoria padrão da UO, às vezes ObjectType e InheritedObjectType são uma sequência de zeros e outras vezes contém alguns dados diferentes de zero. Com o método construtor acima, essas propriedades são padronizadas com zeros.

Alguma ideia de por que o método AddAuditRule não está gerando uma nova regra na UO? Como não há erro, talvez esteja adicionando uma regra, mas está sendo preenchida no Active Directory em um local inesperado?

informação relacionada