私はまた少し立ち往生しています。私は同じことをする必要があったかもしれない誰かのためにインターネットを精査してきました.それを管理した人が何人かいるようですが、パズルのすべてのピースを合わせることはできません.
つまり、AD にリストされているすべてのユーザーの携帯電話番号を取得する必要があります。
これまでのところ、最も簡単で簡単な方法は、Tim Golden の 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 を介して実際に印刷する方法がまだわかりません... LDAP オブジェクトを印刷する方法はありますか? Python 経由の完全な属性、もしそうなら、active_directory モジュール経由ですか?
編集#3:
気にしないで、今それを手に入れたと思います. 多かれ少なかれ機能するコードができたら、他の誰かが私が持っているのと同じブリックウォールに遭遇した場合に備えて、ここに投稿します.
編集#4:
私は少しばかだということがわかりました。これは明らかに、次のコードを使用するのと同じくらい簡単です。
for user in active_directory.search (objectCategory='Person', objectClass='User'):
print user, user.mobile
ivan_pozdeevの助けをありがとう、感謝します:)