gpt4 book ai didi

.net - 如何从 GroupPrincipal 获取域?

转载 作者:行者123 更新时间:2023-12-04 14:05:12 25 4
gpt4 key购买 nike

我需要按以下格式列出特定本地组中的所有用户:“域\用户名”。我可以为组提取 GroupPrincipal 对象的集合,但我不知道如何以所需格式获取用户。 GroupPrincipal 没有属性域。

以下代码输出没有域的用户(例如“用户名”)。

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);
}
}
}
}

是否可以从主体对象获取域 netbios 名称?如果是这样,如何获得它?

最佳答案

您可以从主体的上下文中获取域详细信息。例如。:

foreach (var p in group.GetMembers(false))

{
Console.Write(p.SamAccountName);
if (p.ContextType == ContextType.Domain)
{
Console.Write(" ({0})", p.Context.Name);
}

Console.WriteLine();
}

如果您只想从域上的计算机以“域\用户”格式输出帐户名称,您可以将主体的 SecurityIdentifier 转换为 NTAccount。例如。:
foreach (var p in group.GetMembers(false))
{
Console.WriteLine(p.Sid.Translate(typeof(NTAccount)).ToString());
}

关于.net - 如何从 GroupPrincipal 获取域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6759463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com