2009-12-17 66 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#中獲得。如果你熟悉其中一種語言,那麼你應該能夠蒐集你需要的東西(至少從這些例子開始,然後也許能夠在這裏提出其他更具體的問題)。

希望這會有所幫助!

相關問題