Добавьте правило аудита в организационную единицу Active Directory с помощью PowerShell

Добавьте правило аудита в организационную единицу Active Directory с помощью PowerShell

В скрипте powershell ниже я собираю правила аудита Active Directory для определенного OU, проверяю, существуют ли какие-либо правила аудита для сбоя, и добавляю правило аудита сбоя, если его нет. Все работает до последнего шага добавления правила сбоя. Сообщения об ошибке нет, но новое правило не появляется в 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)
}

Не уверен, что это существенно, но я заметил, что в правилах аудита по умолчанию для OU иногда ObjectType и InheritedObjectType представляют собой строку из одних нулей, а иногда содержат некоторые ненулевые данные. С методом конструктора выше эти свойства по умолчанию имеют все нули.

Есть идеи, почему метод AddAuditRule не генерирует новое правило в OU? Поскольку ошибки нет, возможно, он добавляет правило, но оно заполняется в Active Directory в неожиданном месте?

Связанный контент