PowerShell:replaceAD DS ACL

我正在寻找一个代码示例,显示给定的Active Directory对象(在我的情况下是一个组织单位)上设置的权限如何以某种方式进行修改,即给定安全主体的权限将被另一个安全主体replace,类似于资源工具包实用程序subinacl正在使用subinacl [...] replace=olduser=newuser [...]语法来处理文件系统和registryACL。

我尝试使用Get-ACL(Get-ADOrganizationalUnit [...]).DistinguishedNameSet-ACL -InputObject [...]调用Set-ACL -InputObject [...]调用优雅的方式,但似乎无法弄清楚如何replace由Get-ACL返回的ACL对象中所需的用户/组标识符。

任何洞察力是赞赏。

我创build了一个通用的CopyDsAcl函数, 托pipe在我的bitbucket上 ,以执行这样的目录服务ACL副本。 欢迎您使用它作为参考或工具。 反馈是最受欢迎的。

要将“OUdu someou”上的“olduser”的ACEreplace为“newuser”的ACE,可以执行以下操作:

 CopyDsAcl -sourcePrincipal (Get-ADUser olduser) -sourceObject (Get-ADOrganizationalUnit "OU=someOU,DC=example,DC=com") -targetPrincipal (Get-ADUser newuser) -removeSourceAces 

这些文章最有助于find一种将.NET,AD和ACL绑定在一起的方法:

  • ActiveDirectoryAccessRule类
  • AddAccessRule方法
  • RemoveAccessRuleSpecific方法