我正试图在AD中的计算机对象上Set-Acl
。首先,我使用以下方式获取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'并授予其完全访问权限。
答案 0 :(得分:5)
ActiveDirectory不是文件系统。您必须为ActiveDirectoryAccessRule
创建AD对象的新ACE。
$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
答案 1 :(得分:0)
您必须使用System.DirectoryServices.ActiveDirectoryAccessRule对象而不是System.SecurityControl.FileSystemAccessRule创建的AD对象的ACE。
良好的描述和示例在这里:Add Object Specific ACEs using Active Directory Powershell