0

私はまた少し立ち往生しています。私は同じことをする必要があったかもしれない誰かのためにインターネットを精査してきました.それを管理した人が何人かいるようですが、パズルのすべてのピースを合わせることはできません.

つまり、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の助けをありがとう、感謝します:)

4

1 に答える 1

0

私の投稿の編集#4を参照してください。これも私が実際に解決したわけではありませんが、ユーザー ivan_pozdeev が私を正しい方向に向けてくれたことに感謝します。

今後この投稿に出くわす人は、AD Explorer を入手して、印刷したい属性の名前を確認してください。属性名が「mobile」の場合は、user.mobile と指定することで取得できます(私の場合と同様)。

Tim Golden さん、もしこれを読んだことがあるなら、active_directory モジュールの素晴らしい仕事です。なんとか私のベーコンを救うことができました。

于 2013-02-14T10:01:53.463 に答える