我想使用powershell 編寫腳本來顯示和編輯Active Directory 物件的審核規則,而不是透過GUI 進行操作,如下所述:從Active Directory 使用者和電腦中,在“檢視”功能表中啟用“高級功能”,選擇“網域」左側窗格中的「控制器 OU」 右鍵點選「網域控制站 OU」物件並選擇「屬性」 選擇「安全性」標籤 選擇「進階」按鈕,然後選擇「稽核」標籤
這是我到目前為止所擁有的。首先取得 OU 的 DistinguishedName:
import activedirectory
set-location ad:
dir
將上面 dir 輸出中的正確 DistinguishedName 插入 Get-Acl:
$acl = Get-Acl -Path "DC=something,DC=somethingElse"
$acl 物件的 GetSecurityDescriptorSddlForm 方法似乎相關,但沒有提供人類可讀的輸出。接下來我嘗試了:
$domain = Get-AdDomain -Server "serverName"
$domainSID = $domain.DomainSID
$acl.GetAuditRules(1,1,$domainSID)
但這會產生錯誤:無法將GetAuditRules 的值為“...”的參數targetType 轉換為類型“System.Type”:無法將System.Security.Principal.SecurityIdentifier 類型的“...”值轉換為類型“ System.Type”:型別”
GetAuditRules 的文件似乎說它將接受第三個參數的 SecurityIdentifier,這就是我認為我提供給 GetAuditRules 方法的內容。 https://docs.microsoft.com/en-us/dotnet/api/system.security.accesscontrol.commonobjectsecurity.getauditrules?view=dotnet-plat-ext-3.1
另外,這裡的帖子似乎相關,但我不明白如何選擇正確的建構函數方法來建立 ActiveDirectoryAuditRule,以及如何收集所需的參數,例如 GUID https://social.technet.microsoft.com/Forums/en-US/70881826-6189-48c0-8ee7-0d79aa18f085/powershell-to-set-audit-flags-on-ou?forum=ITCG
任何幫助表示讚賞。謝謝!
答案1
這是一個註冊表,但看起來非常相似。嘗試 get-acl 中的“-audit”開關。
$acl = get-acl -path $pathtoOU -Audit
$acl.getauditrules($true,$true, [System.Security.Principal.NTAccount] )