2013-02-14 42 views
0

我再次有點卡住了,我很害怕。我一直在爲互聯網搜尋任何可能需要做同樣事情的人,似乎有一些人管理它,但我無法將所有難題融合在一起。Python:如何打印AD用戶的手機號碼?

簡而言之:我需要獲取AD中列出的所有用戶的手機號碼。

最簡單和最簡單的方法,到目前爲止似乎是添金的active_directory模塊,這使我對我的代碼看起來到目前爲止(基本上是直他的榜樣的複製和粘貼編碼):

#!/usr/bin/env python 
import active_directory 

def main(): 

    for user in active_directory.search (objectCategory='Person', objectClass='User'): 
     print user 

if __name__ == '__main__': 
    main() 

上面的代碼是一種享受,但我無法弄清楚如何在輸出中包含手機號碼。我不知道該字段的名稱在AD/LDAP中,但我懷疑它是'MobileTelephoneNumber'。

有人可能知道一個快速和骯髒的方式,包括每個用戶的手機號碼?它不一定只是數字,可能是所有聯繫方式。

編輯

我瞎猜,我需要稍微修改代碼來是這樣的:

for user, number in active_directory.search (objectCategory='Person', objectClass='User', objectClass='MobileTelephoneNumber'): 
     print user, number 

似乎不是工作,雖然。我確定必須有某種方式來做到這一點,但我似乎無法弄清楚。如果我能夠確切地知道在AD中存儲數字的位置,我最終可能會發現它,但是似乎沒有太多的信息,或者至少我能夠理解的信息。

編輯#2:
感謝ivan_pozdeev,我能看到我需要的屬性(「手機」),但我仍然有不知道如何通過Python打印它的想法是......有一種方法可以通過Python打印LDAP對象的完整屬性,如果有的話,通過active_directory模塊打印?

編輯#3:
沒關係,想我現在弄明白了。一旦我有了或多或少的代碼,我會在這裏發佈它,以防萬一有人進入我擁有的同一個磚牆。

編輯#4:
原來我有點白癡。這顯然是使用下面的代碼一樣簡單:再次

for user in active_directory.search (objectCategory='Person', objectClass='User'): 
     print user, user.mobile 

感謝您的幫助ivan_pozdeev,欣賞它:)

+0

[AD explorer](http://technet.microsoft.com/en-us/sysinternals/bb963907.aspx)可能有助於找出AD記錄的內容。至於如何使用'active_directory.search',有文檔,源代碼和命令行模式。 – 2013-02-14 08:00:40

+0

感謝您使用AD Explorer鏈接,但就active_directory.search文檔而言,目前爲止,我唯一設法搜索到的內容來自Tim Golden的網站,該網站並沒有專門解釋如何獲取電話號碼。我認爲我的LDAP知識讓我在這裏有點失望。 – kooper 2013-02-14 08:57:11

回答

0

請參閱編輯#4在我的崗位。這也不是我真正解決的,但是感謝用戶ivan_pozdeev指引我朝着正確的方向發展。

對於任何未來絆倒在這篇文章中的人,請獲取AD Explorer,然後查看您希望打印的屬性的名稱。如果屬性名稱是「mobile」,則可以通過指定user.mobile來獲取它(如我的情況)。

和蒂姆金,如果你曾經讀過這個,在active_directory模塊上出色的工作。它只是設法保存我的培根。