如何在 C# 中使用 AD 组名称查找 Active Directory 组电子邮件地址
Posted
技术标签:
【中文标题】如何在 C# 中使用 AD 组名称查找 Active Directory 组电子邮件地址【英文标题】:How to find Active Directory group email address using AD group name in C# 【发布时间】:2021-11-15 13:28:57 【问题描述】:我有一个名称类似于 Stack Over Flow IT
的 Active Directory 组。需要找到像***it@***.com
这样的广告组电子邮件。无需查找 AD 用户列表。
如何找到广告组邮箱?
或者如何使用广告组邮箱地址查找广告组名称?
// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
// find the group in question
GroupPrincipal group = GroupPrincipal.FindByIdentity(ctx, "YourGroupNameHere");
我无法使用上述 group
实例代码找到 Active Directory 组电子邮件地址。
【问题讨论】:
如果答案解决了您的问题,请将其标记为已接受的答案。如果它帮助你给它一个upvote。如果答案离题或根本没有帮助,请投反对票或添加评论。另见***.com/help/why-vote 【参考方案1】:群组邮件
您可以执行以下操作:
PropertyValueCollection email = ((DirectoryEntry) group.GetUnderlyingObject()).Properties["mail"];
如果您有 RSAT 可用,您可以使用以下方法验证您的代码(在 powershell 中):
get-adgroup -Identity "Stack Over Flow IT" -properties mail | select name,mail | sort mail
通过邮件查找组
这是完整性的相反方式:
// replace stuff inside [] to match your environment
DirectoryEntry root = new DirectoryEntry("LDAP://dc=[YOUR DC]", [username], [password], AuthenticationTypes.Secure);
DirectorySearcher groupSearcher = new DirectorySearcher(root);
groupSearcher.Filter = "(mail=***it@***.com)";
groupSearcher.PropertiesToLoad.Add("name");
foreach (SearchResult groupSr in groupSearcher.FindAll())
ResultPropertyValueCollection groupName = groupSr.Properties["name"];
// do something with finding
【讨论】:
以上是关于如何在 C# 中使用 AD 组名称查找 Active Directory 组电子邮件地址的主要内容,如果未能解决你的问题,请参考以下文章
如何使用数据集在 C# 或 dotnet 中查找主键列名称?