代码之家  ›  专栏  ›  技术社区  ›  Noel Kennedy

询问ActiveDirectory计算机是否是组的成员

  •  2
  • Noel Kennedy  · 技术社区  · 15 年前

    这应该很容易,但出于某种原因似乎不是。我想问广告当前的机器是否是某个特定组的成员。直接会员可以。

    该集团只有8台个人电脑,极不可能超过30台。

    C感谢代码示例!

    1 回复  |  直到 15 年前
        1
  •  5
  •   Donut    15 年前

    下面是一个使用 System.DirectoryServices 命名空间:

    public bool BelongsToGroup(string computerName, string groupName, string domain)
    {
       PrincipalContext domainContext = new PrincipalContext(ContextType.Domain, domain);
    
       ComputerPrincipal computer = ComputerPrincipal.FindByIdentity(domainContext, computerName);
    
       foreach (Principal result in computer.GetGroups())
       {
          if (result.Name == groupName)
          {
             return true;
          }
       }
    
      return false;
    }
    

    所以你可以这样称呼它:

    string computerName = Environment.MachineName;
    string groupName = "Group Name";
    string domainName = "Domain Name";
    bool test = BelongsToGroup(computerName, groupName, domainName);