在 AD 计算机对象上设置 ACL

Set-ACL on AD Computer Object

我正在尝试 Set-Acl 在 AD 中的计算机对象上。首先,我使用以下方法获取 ACL:

$acl = (Get-Acl AD:\'CN=Tester1,OU=Ou1,OU=OU2,OU=OU3,DC=Contoso,DC=com').Access

这为我提供了该计算机对象的所有 ACL。然后我使用:

$acl.AddAccessRule((New-Object System.Security.AccessControl.FileSystemAccessRule("Computername","FullControl")))

任何正确方向的指示都会有所帮助。我的目标是添加一个计算机对象到计算机对象'Tester1'并赋予它完全访问权限。

ActiveDirectory 不是文件系统。您必须为 AD 对象创建一个新的 ACE 作为 ActiveDirectoryAccessRule.

$path = "AD:\CN=Tester1,OU=Ou1,OU=OU2,OU=OU3,DC=Contoso,DC=com"
$acl = Get-Acl -Path $path
$ace = New-Object Security.AccessControl.ActiveDirectoryAccessRule('DOMAIN\Computername','FullControl')
$acl.AddAccessRule($ace)
Set-Acl -Path $path -AclObject $acl

AD 对象的 ACE 必须使用 System.DirectoryServices.ActiveDirectoryAccessRule 对象而不是 System.Security.AccessControl.FileSystemAccessRule 创建。

这里有很好的描述和示例:Add Object Specific ACEs using Active Directory Powershell