首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何找到"NT权限“它不是一个AD服务器?

如何找到"NT权限“它不是一个AD服务器?
EN

Stack Overflow用户
提问于 2015-01-06 08:44:07
回答 1查看 601关注 0票数 0

我正在尝试阅读一个msExchMailboxSecurityDescriptor,以确定它是否包含对另一个人的完全访问。访问控制条目包含netbios格式(DOMAIN\Username)中的受托人。

代码语言:javascript
复制
SecurityDescriptor secDesc = (SecurityDescriptor)userDirectoryEntry.Properties["msExchMailboxSecurityDescriptor"].Value;
AccessControlList usrAcl = (AccessControlList)secDesc.DiscretionaryAcl;
foreach (AccessControlEntry ace in (IEnumerable)usrAcl)
{
    var netbiosDn = ace.Trustee.Split('\\')[0];
    var netbiosUser = ace.Trustee.Split('\\')[1];
    // now, the problem:
    UserPrincipal user = UserPrincipal.FindByIdentity(
        new PrincipalContext(ContextType.Domain, netbiosDn), 
        netbiosUser
    );

这直到最后一行,我必须连接到正确的AD服务器,并获得一些用户信息。显然,如果该域没有可用的服务器,如任何"NT权威“或"BUILTIN”“域”,则此操作将失败。它不仅失败,还需要相当一段时间才能成功。

我究竟该如何区分哪些域是AD域,哪些域可以连接到AD服务器,哪些域不是AD域?

我可能在Security描述符中找到一些示例用户,只是为了让您了解问题:

  • CONTOSO\Alex
  • 科托索\迈克尔
  • 子域\Kirk
  • 可信赖的乔治
  • NTPD\酋长布朗
  • NT权威\自我
  • NT INSTANS\INTERAKTIV
  • BUILTIN\Администраторы
  • BUILDING2 2\Владимир
  • VORDEFINERT\管理员
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-06 08:54:08

看看SecurityIdentifier.IsWellKnown

您可以传递各种值,包括WellKnownSidType.NTAuthoritySid,以确定您拥有什么样的SID。

(还请参阅转换为可读名称的this PowerShell代码。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27794998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档