跨域的Windows 2008 R2文件夹共享显示<未知联系人>

[Windows Server 2008 R2 SP1,截至2013年3月15日的最新修补程序] 。 我在Domain1中有一个名为“IT”的安全组。 我在Domain2中有一个server2。 从Domain1到Domain2之间存在单向信任。 我想在server2上共享一个名为“Apps”的文件夹,以便Domain1上的IT组可以访问它。 我成功分享,但有些奇怪。 当我最初添加Domain1 \ IT作为一个组访问共享文件夹,它显示正确的图标和文本在共享对话框中。 但是当我重新打开“共享”对话框来查看权限时,需要长时间来枚举,最后才会显示一个“ 图标,文字为“<未知联系人>”。 Domain1中的IT组可以正确访问共享文件夹,但是这使我觉得有些问题。 任何人知道为什么

共享对话框 -  Win2008R2

在林中的域与林外的域之间build立信任关系时,来自外部域的安全主体可以访问内部域中的资源。 Active Directory在内部域中创build外部安全主体对象,以表示来自可信外部域的每个安全主体。 这些外部安全主体可以成为内部域中域本地组的成员。 外部安全主体的目录对象由Active Directory创build,不应手动修改。 您可以通过启用高级function来查看来自Active Directory用户和计算机的外部安全主体对象。

所以你的“未知联系人”就是Domain2中所谓的外部安全主体。 在CN=ForeignSecurityPrincipals,DC=domain2,DC=com目录的默认命名上下文中有一个容器。 在该容器内部应该是Active Directory将用于parsingDomain1中所有Domain2中已知的所有人员的指针。 Domain2知道SID,但必须要求Domain1将该SID转换为SamAccountName。

由于您的信任是单向的,Domain2不能这样做,因为Domain1不信任它。

您可以在Domain1中启用匿名SID转换,但这是一个安全风险。 或者你可以让你的信任双向。

你现在所拥有的“未知联系人”并不妨碍你所注意到的任何工作,因为SID足以检查森林信任。 这只是一种审美问题。

更多MS文档:

履行

LookupAccountSid将调用带有单个SID的LsaLookupSids来parsing。 所以本节将介绍LsaLookupSids。

呼叫发送到的计算机上的LSA(使用LSA RPC接口)将parsing其映射的SID,并将剩余的未parsing的SID发送到主域中的域控制器。 域控制器将parsing更多的SID到本地数据库的帐户名称,包括在全局编录的SidHistory中find的SID。

如果SID无法在那里parsing,则域控制器会将剩余的SID发送到SID的域部分与信任信息相匹配的受信任域中的域控制器。

最后,从Microsoft AskDS博客(这是一个伟大的博客btw)这一点:

假设端口是开放的,还有一些阻塞翻译的部分。 通常情况下,当涉及单向信任并且匿名翻译被阻止时,我们会看到这一点。 您可以轻松地在组策略中允许匿名SID /名称转换。 此策略仅适用于域控制器,因为它们是实际处理翻译请求的服务器。

http://blogs.technet.com/b/askds/archive/2011/07/28/troubleshooting-sid-translation-failures-from-the-obvious-to-the-not-so-obvious.aspx

编辑:作为解决方法,您可以考虑在Domain2中创build一个名为“可以访问Server2上的应用程序的人员”的安全组,并将Domain1中的用户主体添加到该组中。