TFS 2012 孤儿用户

Posted

技术标签:

【中文标题】TFS 2012 孤儿用户【英文标题】:TFS 2012 Orphan users 【发布时间】:2015-08-16 18:15:13 【问题描述】:

在过去 18 个月中,我们有 85 名 TFS 用户离开了公司。 8 仍然显示为 [TEAM FOUNDATION]\Team Foundation Valid Users[Collection]\Project Collection Valid Users,尽管他们没有其他项目组成员身份。

在我们的企业中,TFS 用户由他们的 AD/网络 ID 标识,并在离开时根据公司政策被“禁用”而不是被删除。通常,除了全局组成员身份“域用户”之外,他们没有任何组成员身份。

我们目前在生产中使用 Team Foundation Server 2012 Update 3。我们已开始在我们的测试环境中进行测试,并计划在未来 6 个月内将生产迁移到更新 4。

我们不断扩展我们的标准,以确保残疾用户不存在“纠缠”,以防止出现这种“孤立用户”的情况。我们目前会在 TFS 用户离开时审查并采取行动,以确保:

1.  User is not associated with a TFS Collection Project group
2.  User has no workspaces associated with their identity in TFS
3.  User has no shelvesets associated with their identity in TFS
4 . User has no items checked out (locked) in TFS
5.  User has no Work Items “Assigned To” their identity in TFS
6.  User has no Project Alerts associated with their identity in TFS

我们已通过命令行或 Web 界面删除了所有用户。我们确保它们不会通过管理员控制台显示。我们已清除 TFS 服务器上的缓存。我们会定期监控 TFSSynchronizeIdentities,并看到它始终如一地正常运行。 TFS 服务器会定期重启。

持续时间最长的“孤立用户”在 TeamFoundation 和 Collection Valid Users 组下持续了 18 个月,而其他 77 名用户已退出,几乎不需要额外操作。问题仍然存在。这 8 个“孤立用户”在整个 18 个月内都发生了 - 而不仅仅是一个老问题,即 18 个月前所有 8 个仍然存在,并且从那时起其他 77 个已成功删除。

当前使用 Update 4 的测试结果表明“孤立用户”在从 Update 3 升级到 Update 4 的过程中持续存在。Update 4 并没有解决“孤立用户”的问题。

【问题讨论】:

【参考方案1】:

我们在 TFS2013 Update 4 中遇到了类似的问题。 离开公司的用户仍然存在于 Team Web Access 的“分配给”下拉列表中。 在 TFS 配置中设置“类似忍者”的注册表项对我们有用。代码如下:

using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.Framework.Client;

// Get TfsConfigurationServer
var cs = new Microsoft.TeamFoundation.Client.TfsConfigurationServer(new Uri("http://YourTfs:YourPort/tfs"));
cs.EnsureAuthenticated();
// Get reg service of configuration server
var regService = cs.GetService<ITeamFoundationRegistry>();
//Set value
regService.SetValue("/Service/Integration/Settings/IdentitySyncFull", true);

然后触发新的同步并观察结果。

【讨论】:

以上是关于TFS 2012 孤儿用户的主要内容,如果未能解决你的问题,请参考以下文章

TFS 2012 配置访问被拒绝:[用户名] 需要以下权限才能执行此操作:查看集合级别信息

TFS 2010 权限。所有用户都有权

如何从 tfs 中删除用户?

VS2012 TFS解决离职后代码遗留未迁入问题

如何为 TFS 中组的特定用户提供签出和签入访问权限

在 TFS2013 中使用 Git 进行 Kerberos 身份验证