我寻找解决方案很长一段时间,但我找到的所有解决方案都非常慢。
我想获取本地 Windows 组中的所有用户。该组当然也可以包含AD组。因此结果应该包含属于该组本身成员的所有用户and所包含的 AD 组的用户。
您知道性能良好的解决方案吗?
您尝试过吗,此示例获取本地计算机中的管理员组成员
using System;
using System.DirectoryServices.AccountManagement;
using System.Collections;
class Program
{
static void Main(string[] args)
{
ArrayList myGroups = GetGroupMembers("Administrators");
foreach (string item in myGroups)
{
Console.WriteLine(item);
}
Console.ReadLine();
}
public static ArrayList GetGroupMembers(string sGroupName)
{
ArrayList myItems = new ArrayList();
GroupPrincipal oGroupPrincipal = GetGroup(sGroupName);
PrincipalSearchResult<Principal> oPrincipalSearchResult = oGroupPrincipal.GetMembers();
foreach (Principal oResult in oPrincipalSearchResult)
{
myItems.Add(oResult.Name);
}
return myItems;
}
public static GroupPrincipal GetGroup(string sGroupName)
{
PrincipalContext oPrincipalContext = GetPrincipalContext();
GroupPrincipal oGroupPrincipal = GroupPrincipal.FindByIdentity(oPrincipalContext, sGroupName);
return oGroupPrincipal;
}
public static PrincipalContext GetPrincipalContext()
{
PrincipalContext oPrincipalContext = new PrincipalContext(ContextType.Machine);
return oPrincipalContext;
}
}
http://anyrest.wordpress.com http://anyrest.wordpress.com
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)