Спросите ActiveDirectory, является ли машина членом группы

StackOverflow https://stackoverflow.com/questions/1613645

Вопрос

Это должно быть действительно легко, но по некоторым причинам это не так. Я хочу спросить AD, является ли текущий компьютер членом определенной группы. Прямое членство в порядке.

Группа содержит только 8 компьютеров и вряд ли вырастет за пределы 30 человек.

Примеры кода на C # приветствуются!

Это было полезно?

Решение

Вот пример метода с использованием 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);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top