为什么我无法从 Powershell 中删除 OU(当我可以使用另一个 UI 时)?



我用创建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的误解来说,这是一个可以接受的解决方法。

相关内容

最新更新