从Active Directory读取用户的组时,“ GetAuthorizationGroups”引发异常

Mic*_*ren 7 powershell active-directory

我正在尝试通过查找组GetAuthorizationGroups,这样做的工作方式是可以返回IEnumerable,但是当我尝试读取它们时,返回的大多数项目都会引发异常:

System.Runtime.InteropServices.COMException:
The specified directory service attribute or value does not exist.
Run Code Online (Sandbox Code Playgroud)

如果插入自己的域,容器和用户名,则应获得其组的列表:

电源外壳:

[System.Reflection.Assembly]::LoadWithPartialName("System.DirectoryServices.AccountManagement")
[System.Reflection.Assembly]::LoadWithPartialName("System.DirectoryServices")
[System.Reflection.Assembly]::LoadWithPartialName("System.DirectoryServices.ActiveDirectory")

$username = "a-user-such-as-yourself"

$principalContext = new-object -TypeName System.DirectoryServices.AccountManagement.PrincipalContext "Domain", "yourADdomain.com", "OU=whatever,OU=andever,DC=yourADdomain,DC=com"

$principal = [System.DirectoryServices.AccountManagement.UserPrincipal]::FindByIdentity($principalContext, $username)

$groups = $principal.GetAuthorizationGroups()
Write-Output $groups
Run Code Online (Sandbox Code Playgroud)

如果我忽略所有异常,它将成功返回组“每个人”,“已认证用户”以及其他几个组,但会引发其他异常。

如果我以Domain Admin身份运行,则可以正常工作,返回所有组,没有任何例外。

因此,我假设运行此功能的用户需要Active Directory中的某种权限。但是哪一个呢?

Mic*_*ren 6

我们出色的系统管理员通过恢复一些出于复杂原因而在我们的广告中缺少的默认权限,使这项工作得以实现。我们缺少Authenticated UsersUsersActive Directory中标准容器的读取权限。