2

特定のユーザーが属するグループを取得するためにこれを書きました:

DirectoryEntry AD = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer");
DirectoryEntry user = AD.Children.Find(completeUserName, "user");
object obGroups = AD.Invoke("Groups");
foreach (object ob in (IEnumerable)obGroups)
{
   // Create object for each group.
    DirectoryEntry obGpEntry = new DirectoryEntry(ob);
    listOfMyWindowsGroups.Add(obGpEntry.Name);
}
for (int j = 0; j < listOfMyWindowsGroups.Count; j++)
{
   //ex
}

特定のユーザーだけでなく、ウィンドウ内のすべてのグループを取得するにはどうすればよいですか?

4

2 に答える 2

2

グループのフィルターを設定して結果を列挙するのはどうですか。

このフィルターを試してください:

AD.Children.SchemaFilter.Add("group");
于 2010-10-25T23:08:43.263 に答える
1

これを試してみてください。特定の OU 内のすべてのグループが表示されます。

public ArrayList GetGroups()
{
    ArrayList myItems = new ArrayList();

    // Create the principal context for the group object.
    PrincipalContext oPrincipalContext = new PrincipalContext(ContextType.Domain, sDomain, sDefaultOU, ContextOptions.SimpleBind, sServiceUser, sServicePassword);

    // Create the GroupPrincipal object and set the diplay name property. 
    GroupPrincipal oGroupPrincipal = new GroupPrincipal(oPrincipalContext);

    // Create a PrincipalSearcher object.     
    PrincipalSearcher oPrincipalSearcher = new PrincipalSearcher(oGroupPrincipal);

    // Searches for all groups named "Administrators".
    PrincipalSearchResult<Principal> oPrincipalSearchResult = oPrincipalSearcher.FindAll();

    foreach (Principal oResult in oPrincipalSearchResult)
    {
        myItems.Add(oResult.Name);
    }
    return myItems;
}

完全なリファレンスについては、これをチェックしてください

.Net 3.5 バージョン - > http://anyrest.wordpress.com/2010/06/28/active-directory-c/

古いバージョン - > http://anyrest.wordpress.com/2010/02/01/active-directory-objects-and-c/

于 2010-10-26T01:55:22.997 に答える