2016-02-05 4 views
0

Я ищу эффективный способ поиска всех пользователей, имеющих доступ к общей папке. Мне кажется, вероятно, нужно комбинировать предложения с этого поста See if user is part of Active Directory group in C# + Asp.net и how to check if specific user having access to a shared folder location using C#.NET - как получить полный список пользователей, имеющих доступ к общей папке?

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

Все в порядке, чтобы просмотреть все группы и перечислить членов группы (ребенок), просто хотите узнать, есть ли более эффективный/лучший способ сразу получить полный список пользователей? (Не обязательно быть методом .NET, может быть любым, например, как в командной строке или PowerShell)

Благодаря

+0

Вы проверили [GetMembers] (https://msdn.microsoft.com/en-us/library/bb339975%28v=vs.110%29 .aspx)? Тем не менее, вам нужно перебирать все группы, но вам не нужно искать их рекурсивно самостоятельно. –

ответ

0

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

cacls <Foldername> 

С C# вы можете вызвать cmd с помощью процесса, а затем получить вывод также

+0

Я думаю, что это похоже на AuthorizationRuleCollection. он отображает только группы и пользователей, имеющих разрешение на доступ к этой папке. не отображать всех членов группы отдельных групп рекурсивно. –

+0

Yup. Но чтобы получить членов группы, у вас должно быть разрешение на запрос активного каталога –

+0

Что делать, если я зарегистрировался как администратор AD? –

 Смежные вопросы

  • Нет связанных вопросов^_^