Jeg har problemer med at skrive noget kode der kan give mig et true/false
svar p� hvor vidt der er medlemmer i en given AD gruppe. Jeg kan sagtens
liste medlemmer og hente v�rdier fra dem, men jeg kan ikke hitte ud af
hvordan jeg blot tester om en given gruppe har medlemmer eller ej.
Jeg h�ber der er en skrap .Net c# kode karl der kan give lidt guldkorn :-)
Mvh Jacob (voldsom meget nybegynder i c#)
Min kode til at liste medlemmer, som helt sikkert kan g�res meget smartere
og hurtigere ser s�ledes ud:
// logger p� AD'et og finder samtlige brugere i gruppen
DirectoryEntry de = new DirectoryEntry("LDAP://DC=" +
(string)Session["CurDom"] + ",DC=local");
DirectorySearcher ds = new DirectorySearcher(de,
"(objectClass=person)(objectClass=user)");
ds.Filter = "(memberOf=CN=" + (string)Session["CurShortSite"] +
"-ITVejleder" + ",OU=Grupper,OU=SK-" + (string)Session["CurShortSite"] +
",DC=" + (string)Session["CurDom"] + ",DC=local)";
ds.PropertiesToLoad.Add("samaccountname");
// Opretter en ny sortedlist
SortedList sl = new SortedList();
// K�rer listen med brugere igennem.
string groupmember = "";
foreach (SearchResult sr in ds.FindAll())
{
// Tilf�jer samaccountname til sortedlisten
groupmember = sr.Properties["samaccountname"][0].ToString();
sl.Add(groupmember, "");
}
Du kan på dette sted tilføje følgende kode...:
SearchResultCollection results = ds.FindAll();
int Antal = results.Count;
Antal vil nu indeholde det antal entries der er i den pågældende gruppe. Hvis du vil lave en metode der afgør det, kunne du gøre
følgende:
privvate bool CheckForMembers()
{
// logger på AD'et og finder samtlige brugere i gruppen
DirectoryEntry de = new DirectoryEntry("LDAP://DC=" +
(string)Session["CurDom"] + ",DC=local");
DirectorySearcher ds = new DirectorySearcher(de,
"(objectClass=person)(objectClass=user)");
ds.Filter = "(memberOf=CN=" + (string)Session["CurShortSite"] +
"-ITVejleder" + ",OU=Grupper,OU=SK-" + (string)Session["CurShortSite"] +
",DC=" + (string)Session["CurDom"] + ",DC=local)";
ds.PropertiesToLoad.Add("samaccountname");
//Hent all medlemmer
SearchResultCollection results = ds.FindAll();
//Returner true hvis der er 1 eller flere medlemmer og false hvis der er mindre end 1 medlem
return (results >= 1 ? true : false);
}
/Finn
Jamen, det er simpelthen perfekt :-) Jeg takker mange gange for din hjælp.
Mvh Jacob
Ingen årsag... Spørg endeligt igen. Kan jeg hjælpe gør jeg gerne... Evt. også på direkte mail.. ;-)
/Finn