我System.DirectoryServices.AccountManagement.dll
用来处理 Active Directory 以获取“域用户”组中的所有用户。
这将返回域中的所有用户,但我只需要获取已启用的用户。
这是一些示例代码:
List<string> users = new List<string>();
PrincipalContext pcContext = GetPrincipalContext();
GroupPrincipal grp = GroupPrincipal.FindByIdentity(pcContext,
IdentityType.Name,
"Domain Users");
foreach (Principal user in grp.GetMembers(true).OfType<UserPrincipal>())
{
if (user.Enabled != false)
{
users.Add(user.Name);
}
}
其他组工作正常,但当组是“域用户”时,该Enabled
属性的值false
适用于所有用户。这使得如果不对每个用户进行进一步查询,就不可能区分启用和禁用用户。