1

私は現在、Active Directory をポーリングして、LDAP 経由で変更されたオブジェクト (人/ユーザー) を選択する PHP スクリプトに取り組んでいます。

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 の変化を取得するためのまったく異なる方法を自由に提案してください。

4

3 に答える 3

1

ldap_read(...)トリックを行うようです:

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

    return $rs[0]["highestcommittedusn"][0];
}
于 2012-04-18T14:47:13.250 に答える
0

おそらく、biffins 関数が正しく初期化されていないのでしょうか? うーん、c_willygham の変数の型を変更してみてください

于 2012-04-21T00:02:09.983 に答える
0

への ldap_search 呼び出しで検索ベース (2 番目の引数) を設定してみてください""。その属性は、 と呼ばれる疑似オブジェクトにありますRootDSE

于 2012-04-16T15:46:39.810 に答える