2012-04-16 80 views
1

我目前正在研究一个PHP脚本,该脚本将轮询Active Directory以通过LDAP挑出修改后的对象(人员/用户)。通过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 = Users,dc = foo”,“highestCommittedUSN = *”,array('highestCommittedUSN'));'doesn没有得到你想要的东西? – DaveRandom 2012-04-16 12:39:36

回答

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]; 
} 
0

尝试在您的ldap_search调用中将搜索库(第二个参数)设置为""。该属性位于名为RootDSE的伪对象上。

0

也许如果biffins功能尚未正确初始化?嗯尝试改变变量类型的c_willygham