Solución:
Active Directory expone la interfaz de consulta a través de OLE DB y ADO. El proveedor es “ADsDSOObject”, la sintaxis de la consulta es la siguiente:
<LDAP://mydomain.com>;(objectType=user);givenname,sn
Perversamente, el nombre del esquema de URL LDAP
debe estar en mayúscula.
Excel no tiene un cliente ADO integrado, a menos que codifique en VBA.
ACTUALIZACIÓN: escribió un script de consulta JavaScript simple para usted:
var conn = new ActiveXObject("ADODB.Connection");
conn.Open("Provider=ADsDSOObject");
var rs = conn.Execute("<LDAP://your-domain.com>;(objectClass=user);sn,givenname");
var i;
if(!rs.EOF)
{
rs.MoveFirst();
while(!rs.EOF)
{
WScript.Echo(rs.Fields.Item("givenname")+","+rs.Fields.Item("sn")+"n");
rs.MoveNext();
}
}
Consulta el nombre y apellido de todos los usuarios de su dominio. Coloque su nombre de dominio en la tercera línea. Luego guárdelo como un archivo .js y ejecútelo así:
cscript adquery.js >a.txt
Y terminará con un archivo de texto llamado a.txt, con los nombres de sus usuarios, separados por comas. Importarlo a Excel o algo así.
En Excel, si está dispuesto a meterse con macros, puede escribir una función VBA contra ADO que realiza la misma consulta. O use .NET’s DirectorySearcher
, las versiones recientes de Excel le permiten consumir objetos .NET.
Si está utilizando la plataforma .NET, le sugiero que busque en el System.DirectoryServices
espacio de nombres, que “proporciona un fácil acceso a los servicios de dominio de Active Directory desde el código administrado”.
MSDN también proporciona ejemplos de código para realizar tareas comunes utilizando System.DirectoryServices
, disponible en VB y C #. Si está familiarizado con uno de estos lenguajes, es de esperar que pueda obtener lo que necesita (al menos para comenzar, y luego quizás pueda hacer otras preguntas más específicas aquí sobre SO) de estos ejemplos.
¡Espero que esto ayude!