2012-04-16 24 views
1

現在、LDAP経由で変更されたオブジェクト(人/ユーザ)を選択するためにActive DirectoryをポーリングするPHPスクリプトを作成しています。LDAP経由でドメインコントローラの 'highestCommittedUSN'属性を取得します。

ので、同様に、私は、私が値を持っているときuSNChangedにフィルタリングすることができるよ:

$previousUsn = '1234'; 
$ldapCon = ldap_connect('ldap-host'); 
$ldapBind = ldap_bind($ldapCon, 'ldap-user', 'ldap-password'); 
$sr = ldap_search($ldapCon, "ou=Users,dc=foo", "uSNChanged >= $previousUsn"); 

thisによると、私は最初の実行のために使用することができhighestCommittedUSN属性を取得することができるはずですスクリプト。私はこれをPHP & LDAPを使ってどのように行うことができるか調べるために調べてきましたが、役に立たないものです。

また、ADの変更を取得するための完全に異なる方法を提案することもできます。

+0

... '$ sr = ldap_search($ ldapCon、" ou =ユーザー、dc = foo "、" highestCommittedUSN = * "、配列( 'highestCommittedUSN'));' doesnあなたが欲しいものを手に入れませんか? – DaveRandom

答えて

1

ldap_read(...)は、トリックを行うようですか? Hmmm c_willyghamの変数型を変更してみてください

0

ldap_search呼び出しで検索ベース(2番目の引数)を""に設定してみてください。その属性は、RootDSEという疑似オブジェクトにあります。 biffins機能が正しく初期化されていない場合は、おそらく

function getHighestCommittedUsn() { 
    ldap_bind(...); 
    $sr = ldap_read($ldapCon, null, "(highestcommittedusn=*)", array("highestcommittedusn")); 
    $rs = ldap_get_entries($ldapCon, $sr); 

    return $rs[0]["highestcommittedusn"][0]; 
} 
関連する問題