PowerShell:替换 AD DS ACL

PowerShell:替换 AD DS ACL

我正在寻找一个代码示例,展示如何修改给定 Active Directory 对象(在我的情况下是组织单位)上的权限集,其中给定安全主体的权限将被另一个安全主体替换,类似于资源工具包实用程序subinacl正在使用以下语法对文件系统和注册表 ACL 进行操作subinacl [...] replace=olduser=newuser [...]

我尝试使用一系列Get-ACL(Get-ADOrganizationalUnit [...]).DistinguishedNameSet-ACL -InputObject [...]调用来提出一种优雅的方法,但似乎无法弄清楚如何用Get-ACL所需的标识符替换 ACL 对象中返回的用户/组标识符。

任何见解都值得赞赏。

答案1

我创建了一个通用CopyDsAcl函数,托管在我的 bitbucket 上,执行此类目录服务 ACL 复制。欢迎您将其用作参考或工具。欢迎反馈。

要将 OU“someOU”上“olduser”的 ACE 替换为“newuser”的 ACE,您可以执行以下操作:

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

这些文章对于找到将 .NET、AD 和 ACL 结合在一起的方法非常有帮助:

相关内容