我用创建OU
$sb = [scriptblock]::Create(
"New-ADOrganizationalUnit $cn -path `"$path`" -ProtectedFromAccidentalDeletion 0"
)
Invoke-Command -ComputerName $server -Credential $Credential `
-ScriptBlock $sb
$dn = "OU=$cn,$path"
然后尝试用删除它
$sb = [scriptblock]::Create(
"Remove-ADOrganizationalUnit `"$dn`" -Recursive -Confirm:0"
)
Invoke-Command -ComputerName $server -Credential $Credential `
-ScriptBlock $sb
我得到了一个";访问被拒绝";消息
拒绝访问
CategoryInfo:PermissionDenied:(…DN…)[Remove ADOrganizationalUnit],UnauthorizedAccessException
FullyQualifiedErrorId:ActiveDirectoryCmdlet:System.UnauthorizedAccessException,Microsoft.ActiveDirectory.Management.Commands.RemoveADOrganizationalUnit
PSComputerName:。。。我的服务器。。。
请注意,创建时,我关闭了意外删除保护(我可以在域控制器上确认)。
如果我将服务器和凭据传递给,我会收到相同的拒绝访问消息
Remove-ADOrganizationalUnit -Server $server -Credential $Credential "$dn" -Recursive -Confirm:0`
并且如果我打开远程会话并在该上下文中运行CCD_ 1。
真正奇怪的是,我可以用相同的凭据将LDAP Admin指向同一台服务器,然后删除OU。我无法解释这种矛盾。
我确实看到,对新创建的对象的有效访问不是我所期望的。在我创建的OU的父OU上,用户具有
- 为该子体和所有子体创建/删除组对象
- 创建/删除此子体和所有子体的组织单位对象
- 为该子体和所有子体创建/删除用户对象
- 对后代组对象的完全控制
- 对Descendant User对象的完全控制
- 列出此子体和所有子体的内容
- 读取此子体和所有子体的所有属性
- 写入此和所有子体的所有属性
- 此子体和所有子体的读取权限
但是我在创建的OU上缺少Delete和Delete子树。为什么Created/delete OU没有继承,为什么LDAP Admin工作而PS不工作?
在修改问题以逐项列出权限后,Rubber Duck Debugging发现该列表不一致,因为它缺乏"对Descendant Organizational Unit对象的完全控制"。然而,添加完全控制权限解决了这个问题,对于奇怪的继承或我对AD的误解来说,这是一个可以接受的解决方法。