Pregunta

Esto debería ser realmente fácil, pero por alguna razón no parece serlo. Quiero preguntarle a AD si la máquina actual es miembro de un grupo en particular. La membresía directa está bien.

El grupo solo contiene 8 PC y es extremadamente improbable que crezca más de 30.

¡

ejemplos de código C # apreciados!

¿Fue útil?

Solución

Aquí hay un método de ejemplo que utiliza System.DirectoryServices espacio de nombres:

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

Entonces podría llamarlo así:

string computerName = Environment.MachineName;
string groupName = "Group Name";
string domainName = "Domain Name";
bool test = BelongsToGroup(computerName, groupName, domainName);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top