我们有一个使用 Active Directory 的 TFS 2017 安装,它已经运行良好很长一段时间了(并且除了一个有问题的组之外,它继续运行良好)。
我们最近向 Active Directory 添加了一些组,并将它们配置到 TFS 中的团队项目。除了其中一个组被添加为用户外,其他组都很好。由于它是作为用户添加的,因此其成员均无权访问团队项目。
我已验证该组已作为组(而不是用户)输入到 Active Directory 中。我已清除客户端缓存、浏览器缓存和服务器缓存。我还强制运行 Active Directory 同步(成功完成且无错误),并尝试从多个客户端添加该组。所有工作流程的结果都相同。
可以在此处看到 TFS 查找。请注意,它在查找中被识别为一个组。
TFS 查找将 Active Directory 组显示为一个组
此处可以看到从该查找结果中作为用户添加的组。请注意,它是作为用户而不是组添加的。它的行为也像用户一样,不为其成员提供访问权限。
有谁知道是什么原因造成的,或者至少,我如何将该组添加为一个组,以便其成员能够成功配置到相关的团队项目中?
答案1
这似乎是一种罕见的情况,并不常见,但我会回答,以便 3 年后遇到这种行为的另一个人知道该怎么做。
我编写了一个小型 C# 应用程序来检查该组的属性(包括大多数基于 Active Directory GUI 的工具中隐藏的属性),发现 IsContainer 属性已设置为 false。我与该组的所有者合作将该值重置为 true,此后一切正常。
答案2
我刚刚也遇到了同样的情况。
在 AD 中创建的组在 TFS 管理网站上被识别为用户。这种情况在不同的测试组中多次发生。
最后,在发生未知事件(注销、时间流逝……)后,在 AD 中创建的组被正确识别为组。注意:我们的组名带有破折号,名称中没有破折号的第一个组有效……
我没有执行上面 mattbbpl 描述的分析(IsContainer 属性)。
如果这是 AD 管理应用程序中的一个错误,那么这是一个相当烦人的问题……