Active Directory查询用户名,名字,姓氏和电子邮件

ram*_*ram 7 active-directory

请原谅我的无知,我对AD不太了解(让我独自查询AD或谷歌搜索).我想获得特定域中所有用户的列表,他们的名字,姓氏和电子邮件ID.网络管理员(或我的帮助台)是否能够做到这一点?我的另一个选择:我在excel表中有用户名,在另一个文本文件中有全名(在其他数据中 - 比如XXXyy,FirstName LastName-我必须拆分,解析它以提取名称)并在另一个文件中发送电子邮件而没有他们是有序的.可能还有一些丢失的数据:(

通过查询AD,最好的方法是什么?

编辑:可能是我应该更具体.如果我看到我的网络管理员会为了获取这些信息而做什么,他会做什么?

Sev*_*yev 5

Active Directory 通过 OLE DB 和 ADO 公开查询接口。提供者是“ADsDSOObject”,查询语法如下:

<LDAP://mydomain.com>;(objectType=user);givenname,sn

相反,URL 模式名称LDAP必须大写。

Excel 没有内置的 ADO 客户端,除非您在 VBA 中编码。

更新:为您编写了一个简单的 JavaScript 查询脚本:

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();
    }
}
Run Code Online (Sandbox Code Playgroud)

它查询域中所有用户的姓名和姓氏。将您的域名放在第三行。然后将其另存为 .js 文件,并按如下方式执行:

cscript adquery.js >a.txt
Run Code Online (Sandbox Code Playgroud)

您最终会得到一个名为 a.txt 的文本文件,其中包含以逗号分隔的用户名。将其导入Excel或其他东西。

在 Excel 中,如果您愿意使用宏,您可以针对 ADO 编写一个 VBA 函数来执行相同的查询。或者使用 .NET's DirectorySearcher,最新版本的 Excel 可让您使用 .NET 对象。