c# - query - Obtener una lista de miembros de un grupo de WinNT




query active directory c# (2)

Debería poder encontrar esta información dentro del atributo "member" en el DirectoryEntry que representa el grupo.

Hay un par de preguntas similares a esta en el desbordamiento de la pila, pero no es lo mismo.

Quiero abrir o crear un grupo local en una computadora win xp y agregarle miembros, dominio, cuentas locales y conocidas. También quiero verificar si un usuario ya es miembro para no agregar la misma cuenta dos veces y, presumiblemente, obtener una excepción.

Hasta ahora comencé a usar el objeto DirectoryEntry con el proveedor WinNT:// . Esto está yendo bien, pero estoy atascado en cómo obtener una lista de miembros de un grupo.

Alguien sabe cómo hacer esto? ¿O proporciona una mejor solución que usar DirectoryEntry?


Microsoft .NET Framework proporciona una biblioteca estándar para trabajar con el espacio de nombres Active Directory: System.DirectoryServices en System.DirectoryServices.dll.

Microsoft recomienda utilizar dos clases principales del espacio de nombres System.DirectoryServices: DirectoryEntry y DirectorySearcher . En la mayoría de los casos, es suficiente usar la clase DirectorySearcher solamente.

ACTUALIZACIÓN: Lo probé en mi máquina, funciona. Pero tal vez he entendido mal tu pregunta.

Aquí hay un ejemplo de un excelente artículo de CodeProject :

Obtenga una lista de usuarios que pertenecen a un grupo de AD particular

using System.DirectoryServices;

ArrayList GetADGroupUsers(string groupName)
{    
   SearchResult result;
   DirectorySearcher search = new DirectorySearcher();
   search.Filter = String.Format("(cn={0})", groupName);
   search.PropertiesToLoad.Add("member");
   result = search.FindOne();

   ArrayList userNames = new ArrayList();
   if (result != null)
   {
       for (int counter = 0; counter < 
          result.Properties["member"].Count; counter++)
       {
           string user = (string)result.Properties["member"][counter];
               userNames.Add(user);
       }
   }
   return userNames;
}






windows-security