alt*_*tso 6 .net active-directory
我需要按以下格式列出特定本地组中的所有用户:"Domain\UserName".我可以为该组提取GroupPrincipal对象的集合,但我不知道如何以所需格式获取用户.GroupPrincipal没有属性Domain.
以下代码输出没有域的用户(例如"UserName").
using (var context = new PrincipalContext(ContextType.Machine, null))
{
using (var group = GroupPrincipal.FindByIdentity(context, IdentityType.SamAccountName, @"My Local Group"))
{
if (group != null)
{
foreach (var p in group.GetMembers(false))
{
Console.WriteLine(p.SamAccountName);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
是否可以从主要对象获取域netbios名称?如果是这样,如何获得它?
Nic*_*oiu 10
您可以从主体的上下文中获取域详细信息.例如:
foreach (var p in group.GetMembers(false))
{
Console.Write(p.SamAccountName);
if (p.ContextType == ContextType.Domain)
{
Console.Write(" ({0})", p.Context.Name);
}
Console.WriteLine();
}
Run Code Online (Sandbox Code Playgroud)
如果您只想从域中的计算机以"域\用户"格式输出帐户名称,则可以将主体的SecurityIdentifier转换为NTAccount.例如:
foreach (var p in group.GetMembers(false))
{
Console.WriteLine(p.Sid.Translate(typeof(NTAccount)).ToString());
}
Run Code Online (Sandbox Code Playgroud)