C#控制台应用程序 - 获取当前用户AD组

时间:2018-04-20 12:11:07

标签: c# console-application

我正在编写一个脚本来获取当前用户的AD组列表,并为路径创建.txt文件。

我看了一下,似乎我应该使用这些引用:

using System.DirectoryServices; using System.DirectoryServices.AccountManagement;

我也在用这个:

UserPrincipal user = UserPrincipal.FindByIdentity(new PrincipalContext(ContextType.Domain, "<Domain>"), IdentityType.SamAccountName, "<UserName>");
foreach (GroupPrincipal group in user.GetGroups())
{
    Console.Out.WriteLine(group);
}

但是这并没有列出用户应该使用的所有组。

我有什么遗失的吗?

1 个答案:

答案 0 :(得分:1)

我使用这段代码来获取用户组:

        String domainName = @"<your domain>";
        String username = domainName + @"\<your username>";
        PrincipalContext thisDomain = new PrincipalContext(ContextType.Domain);

        UserPrincipal userPrincipal = UserPrincipal.FindByIdentity(thisDomain, username);

        PrincipalSearchResult<Principal> userGroups = userPrincipal.GetAuthorizationGroups();

        foreach (Principal principal in userGroups.OfType<GroupPrincipal>())
        {
            Debug.WriteLine(principal.Name);
        }

据我所知,它列出了用户所属的所有组,与Active Directory中保存的内容进行比较,并在MMC管理单元中查看用户对象