C# 使用DirectoryServices.AccountManagement从OU获取组
我想使用AccountManagement列出组织单位中的所有组 以下代码段适用于DirectoryServices,但我必须将GroupPrincipal与结果中的DirectoryEntry路径实例化(这感觉像一个脏补丁) 有人有主意吗C# 使用DirectoryServices.AccountManagement从OU获取组,c#,.net,active-directory,directoryservices,C#,.net,Active Directory,Directoryservices,我想使用AccountManagement列出组织单位中的所有组 以下代码段适用于DirectoryServices,但我必须将GroupPrincipal与结果中的DirectoryEntry路径实例化(这感觉像一个脏补丁) 有人有主意吗 谢谢 您可以将PrincipalContext设置为要开始搜索的OU,并使用System.DirectoryService.AccountManagement中的PrincipalSearcher-类来完成所需操作,如下所示: PrincipalContex
谢谢 您可以将
PrincipalContext
设置为要开始搜索的OU,并使用System.DirectoryService.AccountManagement
中的PrincipalSearcher
-类来完成所需操作,如下所示:
PrincipalContext yourOU = new PrincipalContext(ContextType.Domain, "mycompany.local", "OU=Marketing,OU=Operations,OU=Applications,DC=mycompany,DC=local");
GroupPrincipal findAllGroups = new GroupPrincipal(yourOU, "*");
PrincipalSearcher ps = new PrincipalSearcher(findAllGroups);
foreach(var group in ps.FindAll())
{
Console.WriteLine(group.DistinguishedName);
}
Console.ReadLine();
非常感谢你!!我已经试过了,但是错过了通配符“*”。谢谢你的
discrimitedName
PrincipalContext yourOU = new PrincipalContext(ContextType.Domain, "mycompany.local", "OU=Marketing,OU=Operations,OU=Applications,DC=mycompany,DC=local");
GroupPrincipal findAllGroups = new GroupPrincipal(yourOU, "*");
PrincipalSearcher ps = new PrincipalSearcher(findAllGroups);
foreach(var group in ps.FindAll())
{
Console.WriteLine(group.DistinguishedName);
}
Console.ReadLine();