«GetAuthorizationGroups» выдает исключение при чтении групп для пользователя из Active Directory - PullRequest
7 голосов
/ 14 мая 2019

Я пытаюсь найти группы с помощью GetAuthorizationGroups, и это вроде как работает, так как я могу вернуть IEnumerable, но большинство элементов, которые я возвращаю, выдают исключение, когда я пытаюсь их прочитать:

System.Runtime.InteropServices.COMException:
The specified directory service attribute or value does not exist.

Если вы подключите свой собственный домен, контейнер и имя пользователя, вы должны получить список их групп:

Powershell:

[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

Если я игнорирую всеисключения, он успешно возвращает группы «Все», «Прошедшие проверку» и еще пару, но вызывает исключение для других.

Если я запускаю это как администратор домена, он работает нормально, возвращаявсе группы без каких-либо исключений.

Итак, я предполагаю, что пользователю, выполняющему это, требуется какое-то разрешение в Active Directory.Но какой?

1 Ответ

6 голосов
/ 23 мая 2019

Наш замечательный системный администратор получил эту работу, восстановив некоторые разрешения по умолчанию, которые отсутствовали в нашей AD по сложным причинам.Нам не хватало прав на чтение Authenticated Users в стандартном контейнере Users в Active Directory.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...