在服务器或集合级别禁用 TFS 签入权限
Posted
技术标签:
【中文标题】在服务器或集合级别禁用 TFS 签入权限【英文标题】:Disable TFS check-in permissions at the server or collection level 【发布时间】:2019-10-24 19:22:17 【问题描述】:我想拒绝/限制用户在 TFS 中签入/签出文件。我们正在使用 TFVC 和 2017.1 TFS。
我知道我可以在项目级别执行此操作,但由于我们有 200 个项目,这会很麻烦。这在根或集合级别是否可行。我只希望集合管理员有权访问,但没有其他人。
【问题讨论】:
嗨,Sam,这张票有任何更新,你发现你的问题了吗? jessehouwing 是对的,您是否有机会实施他建议的最新评论?你能解决吗? 不,我正在编写脚本并随时发布进度。感谢您的跟进并感谢@jessehouwing 回复替代方案。 嗨,山姆,感谢您的热情回复。找出问题后,请随时在此处分享,这也将对社区中的其他人有所帮助。 【参考方案1】:导航到集合中任何团队项目的安全页面,例如:
https://account.visualstudio.com/project-name/_settings/repositories?itemPath=%24%2Fproject-name
然后将itemPath
更改为$/
。这应该会打开整个集合的安全页面:
https://account.visualstudio.com/project-name/_settings/repositories?itemPath=%24%2F
来自 Azure DevOps 的屏幕截图,我手头不再有 TFS 2017。
或者使用团队资源管理器的源代码管理资源管理器进入 Visual Studio 中的安全对话框。
在此处设置适当的拒绝,并且应该级联。
【讨论】:
我也想过这个。但这里的挑战是群体。我们使用基于角色的 AD 组来确保 TFS 安全。所以对于 200 个项目,我们有 800 个 AD 组(每个项目 200*4 个角色)。使用这种方法,我需要拒绝 800 个组。 如果命名合理,编写脚本很容易。在这种情况下,Tfssecurity.exe 是您的朋友。您可以使用与此类似的方法,但您需要对正确的名称空间和令牌结构进行一些研究。方法是一样的。 jessehouwing.net/… 或者使用自动包含 200 个相似组的动态广告组,然后拒绝这些。我们使用这些来根据广告属性创建组并动态选择成员。我想这也应该适用于组群......或者脚本广告。 不。我尝试了你的第二种方法,但它对我不起作用。我拒绝了 root $/ 用户的所有权限,但是该用户在单个项目上设置了 ALLOW 权限。我验证用户仍然可以签入和签出文件。 那么您可能需要编写脚本以在每个项目级别重新启用继承。很抱歉……以上是关于在服务器或集合级别禁用 TFS 签入权限的主要内容,如果未能解决你的问题,请参考以下文章