Pergunta

Isto deve ser muito fácil, mas, por algum motivo, não parece ser. Eu quero perguntar AD se a máquina atual é um membro de um grupo particular. participação direta é bom.

Grupo possui apenas 8 PC e é extremamente improvável a crescer para além de 30.

C exemplos # código apreciada!

Foi útil?

Solução

Aqui está um método de exemplo usando a System.DirectoryServices namespace:

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;
}

Então, você poderia chamá-lo assim:

string computerName = Environment.MachineName;
string groupName = "Group Name";
string domainName = "Domain Name";
bool test = BelongsToGroup(computerName, groupName, domainName);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top