0
組
我有一個腳本如下,從(https://samjlevy.com/archives/)顯示組母體顯示memberOf屬性PHP LDAP - 的
<?php
function get_groups($user) {
// Active Directory server
$ldap_server = "****************";
// Active Directory DN, base path for our querying user
$ldap_dn = "dc=registry,dc=otago,dc=ac,dc=nz";
// Active Directory user for querying
$query_user = "*************";
$password = "************";
// Connect to AD
$ldap = ldap_connect($ldap_server) or die("Could not connect to LDAP");
ldap_bind($ldap,$query_user,$password) or die("Could not bind to LDAP");
// Search AD
$results = ldap_search($ldap,$ldap_dn,"(samaccountname=$user)",array("memberof","primarygroupid"));
$entries = ldap_get_entries($ldap, $results);
// No information found, bad user
if($entries['count'] == 0) return false;
// Get groups and primary group token
$output = $entries[0]['memberof'];
$token = $entries[0]['primarygroupid'][0];
// Remove extraneous first entry
array_shift($output);
// We need to look up the primary group, get list of all groups
$results2 = ldap_search($ldap,$ldap_dn,"(objectcategory=group)",array("distinguishedname","primarygrouptoken"));
$entries2 = ldap_get_entries($ldap, $results2);
// Remove extraneous first entry
array_shift($entries2);
// Loop through and find group with a matching primary group token
foreach($entries2 as $e) {
if($e['primarygrouptoken'][0] == $token) {
// Primary group found, add it to output array
$output[] = $e['distinguishedname'][0];
// Break loop
break;
}
}
return $output;
}
// Example Usage
echo "<pre>";
print_r(get_groups("ingja44p"));
echo "</pre>";
?>
如何再取各組,並檢查這些基團,每個基團是成員,因此直接或間接地顯示與用戶關聯的每個組?