带有 vstfs:///Classifcation ID 的 TFSSecurity
Posted
技术标签:
【中文标题】带有 vstfs:///Classifcation ID 的 TFSSecurity【英文标题】:TFSSecurity with vstfs:///Classifcation IDs 【发布时间】:2017-10-22 08:41:04 【问题描述】:我正在尝试使用 PowerShell 从用户列表中删除一些权限的脚本。问题是,当我执行命令列出与用户关联的用户组时,我得到一个通用结果,当我执行从该组中删除用户的命令时无法使用。
为用户获取组:
tfssecurity /im <domain>\<username> /server:<tfsserver>:8080/tfs
结果:
目标 Team Foundation Server 是 http://:8080/tfs/。解析身份 “\用户名”...
SID:S-1-5-21-3609080306-XXXXXXXXXX-XXXXXXXXX-5728
DN: CN=LastName, FirstName,OU=Disabled Users,DC=company,DC=com
身份类型:Windows 用户登录名:\Mail 地址:username@domain.com 显示名称:lastname, firstname 说明:TFS 用户
1 个组的成员:[A] [TeamProject]\Developers
完成。
问题:当我尝试从返回的组中删除用户时:
tfssecurity /g- "[TeamProject]\Developers" <domain>\<username> /collection:http://tfsserver:8080/tfs/collection/
我明白了:
目标 Team Foundation Server 是 http://tfsserver:8080/tfs/collection。解析身份 “[团队项目]\开发人员”...
错误:无法解析身份。
我正在寻找的内容类似于:
vstfs:///Classification/TeamProject/af89c143-2f5e-4f5b-974e-903e8db86f73\Developers
我知道 TFS UI 可以提供这些组 SIDS,但我想看看我是否可以从 TFSSecurity 或其他命令库获取这些 SIDS,以便 PowerShell 可以利用这些 SIDS。
C:\Program Files (x86)\Microsoft Visual Studio 14.0>tfssecurity /g- “[存档项目]\开发人员”\ /server:http://:8080/tfs/ Microsoft (R) TFSSecurity - 团队 Foundation Server 安全工具 版权所有 (c) Microsoft Corporation。 保留所有权利。
目标 Team Foundation Server 是 http://tfs-na.ihs.com:8080/tfs。解析身份 “[存档项目]\开发人员”...
错误:发现多个身份匹配 '[存档 项目]\开发人员'。请指定以下身份之一:
[存档项目]\Developers (vstfs:///Classification/TeamProject/8153b33c-addc-48c2-81c0-XxXXXxxxXXXX\Developers) [归档项目]\Developers (vstfs:///Classification/TeamProject/f3d25cfe-41b3-4f30-a329-BBBbbBBBbbbb\Developers) [存档项目]\Developers (vstfs:///Classification/TeamProject/c0820b8e-2af0-416c-88b5-CCcccCCCccCC\Developers)
【问题讨论】:
提供您尝试过的内容以及您遇到的错误或意外情况 编辑您的帖子并包含所有这些格式良好的好友! 【参考方案1】:tfssecurity /g-
命令的使用不需要使用 SID。你的命令是对的。
tfssecurity /g- "[TeamProject]\Developers" <domain>\<username> /collection:http://tfsserver:8080/tfs/collection/
根据错误The identity cannot be resolved
,这更像是域服务器的连接问题。使用 Team Foundation Server 和 de AD 服务器之间的直接连接,可以解析所有身份。此外,如果您的帐户和 TFS 服务器使用两个不同的域。确保他们相互信任,详情看这个问题:TFSSecurity Unable to Resolve Identity
【讨论】:
实际上还有更多内容。我们有多个集合,在这些集合中,我们有多个具有相同名称的项目组的团队项目,即“开发人员”、“测试人员”。 我正在尝试从服务器级别解决这个问题,因为用户可能存在也可能不存在于 TP groupm 中,TP groupm 可能存在于集合中的任何团队项目中。当我们有多个同名组时,我们会收到另一个错误。 如果是唯一名称,则 tfssecurity /g- 工作正常 @Alvatron 这是因为您试图从服务器级别删除组的用户。在不同的项目集合中可能有多个具有相同项目名称和组名称的组。如果您在集合级别查询组信息,例如tfssecurity /im <domain>\<username> /collection:<tfsserver>:8080/tfs/collection name
然后在集合级别从组中删除用户。应该没有这个问题。
@Alvatron 列出具有多个集合信息的用户的所有组。它无法使用 tfssecurity 命令来执行此操作。您可能必须使用 TFS API 来执行此操作。一个示例(social.msdn.microsoft.com/Forums/vstudio/en-US/…)供您参考。组 ID 存储在 Tfs_Configuration 数据库中。您可能需要使用 sql 命令列出 Tfs_Configuration 数据库中的 dbo].[tbl_Group]
表。以上是关于带有 vstfs:///Classifcation ID 的 TFSSecurity的主要内容,如果未能解决你的问题,请参考以下文章
使用带有 uuencode 的“sendmail”发送邮件,并带有主题
如何翻转正面带有标签而背面带有另一个标签的视图 - 参见图片
CakePHP 如何处理带有/不带有 'id' 字段的 HABTM 表?
带有 RecyclerView 的 DialogFragment 比带有 Recyclerview 的 Fragment 慢