2009-12-17 79 views
7

请原谅我的无知,我对AD不太了解(让AD单独查询或用Google搜索)。我想获得特定域中所有用户的名单,他们的名字,姓氏和电子邮件ID。网络管理员(或我的情况下的帮助台)能够做到这一点吗?我的其他选择:我有一个Excel表格中的用户名,另一个文本文件中的全名(在其他数据中 - 例如XXXyy,FirstName LastName-我将不得不拆分,解析它以提取名称)并在另一个文件中发送电子邮件,他们是为了。有可能是太缺少一些数据:(活动目录查询用户名,名字,姓氏和电子邮件

什么会去了解它与查询AD的最佳方式

编辑:?也许我应该更具体。如果我看到什么我的网络管理员会为了让我得到这些信息,他会做些什么?

+1

请指定平台。 – 2009-12-17 22:12:12

+0

Windows Server 2003/2008 – ram 2009-12-17 22:35:24

回答

4

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

< LDAP:// DC =我的域,DC = com的>;(=的objectType用户);给定名称,SN

Excel不有一个内置的ADO客户端,除非你在VBA中编码。

UPDATE:写了一个简单的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(); 
    } 
} 

,它查询所有用户的fiest和姓氏在您的域名。将您的域名放在第三行。然后保存为一个.js文件,正是如此执行:

cscript adquery.js >a.txt 

而且你会叫a.txt中的文本文件结束,与用户的名称,以逗号分隔。将其导入到Excel或其他东西。

4

如果您使用的是.NET平台,我会建议您查看System.DirectoryServices namespace,它“可以从托管代码轻松访问Active Directory域服务。 “

MSDN还提供使用System.DirectoryServices执行常见任务的代码示例,可在VBC#中获得。如果你熟悉其中一种语言,那么你应该能够搜集你需要的东西(至少从这些例子开始,然后也许能够在这里提出其他更具体的问题)。

希望这会有所帮助!

相关问题