AD计算机对象上的Set-ACL

时间:2015-07-13 04:40:38

标签: powershell active-directory acl

我正试图在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'并授予其完全访问权限。

2 个答案:

答案 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