2012-04-16 28 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