请原谅我的无知,我对AD不太了解(让我独自查询AD或谷歌搜索)。我想获得特定域中所有用户的列表,他们的名字,姓氏和电子邮件ID。网络管理员(或我的帮助台)是否能够做到这一点?我的另一个选择:我在excel表中有用户名,在另一个文本文件中有全名(在其他数据中 - 比如XXXyy,FirstName LastName-我必须拆分,解析它以提取名称)并在另一个文件中发送电子邮件而没有他们是有序的。可能还有一些缺失的数据:(
通过查询AD,最好的方法是什么?
编辑:可能我应该更具体。如果我看到我的网络管理员会为我提供这些信息,他会做什么?
答案 0 :(得分:4)
如果您正在使用.NET平台,我建议您查看System.DirectoryServices
namespace,它“可以从托管代码轻松访问Active Directory域服务。”
MSDN还提供了使用System.DirectoryServices
执行常见任务的代码示例,VB和C#均提供。如果您熟悉其中一种语言,那么您应该希望能够从这些示例中收集您需要的内容(至少可以开始,然后可以在此处提出其他更具体的问题)。
希望这有帮助!
答案 1 :(得分:4)
Active Directory通过OLE DB和ADO公开查询接口。提供者是“ADsDSOObject”,查询语法如下:
< LDAP:// DC =我的域,DC = com的取代;(的objectType =用户);给定名称,SN
Excel没有内置的ADO客户端,除非您在VBA中编码。
更新:为您编写了一个简单的JavaScript查询脚本:
var conn = new ActiveXObject("ADODB.Connection");
conn.Open("Provider=ADsDSOObject");
var rs = conn.Execute("<LDAP://DC=your-domain,DC=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();
}
}
它会查询您域中所有用户的名字和姓氏。将您的域名放在第三行。然后将其保存为.js文件,并执行:
cscript adquery.js >a.txt
你最终会得到一个名为a.txt的文本文件,其中包含用户名,以逗号分隔。将其导入Excel或其他内容。