TFS2017:Project Collection Admin 没有足够的权限将用户添加到 Project Admin 组
TFS2017: Project Collection Admin has insufficient permission to add a user to the Project Admin group
我遇到无法将用户添加到团队项目中的 Project Administrators 组的问题,即使我的用户帐户在 Project Collection 中也是如此Admins 组。我还尝试使用属于管理控制台用户组的帐户,但没有成功。
这只会影响一些团队项目。未修改开箱即用安全组的权限。
这在我们从 TFS2015 升级之前工作正常,所以我假设 TFS2017 中发生了一些变化。
有趣的是,我可以从项目管理员组中删除用户而不是添加任何用户。
我注意到现在有一个似乎包含所有其他安全组的安全服务组。我想知道这是否是导致权限冲突的原因,因为其中大多数是 'Not set'.
如有任何建议,我们将不胜感激。 :)
Rajesh Ramamurthy (MSFT) 已针对该问题提供了一个修复程序 (comment on Brian Harry's blog),该问题也应在即将发布的 TFS 2017 Update 1 版本中修复。
这是如何完成的:
- 运行 TFS 配置数据库中的以下 SQL:
select
LocalScopeId from tbl_Groupscope where PartitionId > 0 and
ScopeType = 2 and Active = 1
- 应将结果复制到文件中
在服务器上,例如 C:\LocalScopeIdList.txt
- 运行以下
服务器上的 power shell 脚本并将前三个值更新为
需要。
第 3 步的脚本:
$url = "http://localhost:8080/tfs/defaultcollection"
$localScopeIdList = Get-Content C:\LocalScopeIdList.txt
$cmd = "C:\Program Files\Microsoft Team Foundation Server 15.0\Tools\TFSSecurity.exe"
$collection = "/collection:"+ $url
$permissions = "Read", "Write", "Delete", "ManageMembership", "CreateScope"
foreach($scopeId in $localScopeIdList) {
foreach($permission in $permissions) {
$token = $scopeId + "\"
$param = @("/a+", "Identity", $token, $permission, "adm:", "ALLOW", $collection)
Write-Host $param
& $cmd $param
}
}
我已经在 pre-prod 服务器上成功地尝试了上述方法,因此我希望在本周末将其部署到生产环境中。
我遇到无法将用户添加到团队项目中的 Project Administrators 组的问题,即使我的用户帐户在 Project Collection 中也是如此Admins 组。我还尝试使用属于管理控制台用户组的帐户,但没有成功。
这只会影响一些团队项目。未修改开箱即用安全组的权限。
这在我们从 TFS2015 升级之前工作正常,所以我假设 TFS2017 中发生了一些变化。
有趣的是,我可以从项目管理员组中删除用户而不是添加任何用户。
我注意到现在有一个似乎包含所有其他安全组的安全服务组。我想知道这是否是导致权限冲突的原因,因为其中大多数是 'Not set'.
如有任何建议,我们将不胜感激。 :)
Rajesh Ramamurthy (MSFT) 已针对该问题提供了一个修复程序 (comment on Brian Harry's blog),该问题也应在即将发布的 TFS 2017 Update 1 版本中修复。
这是如何完成的:
- 运行 TFS 配置数据库中的以下 SQL:
select LocalScopeId from tbl_Groupscope where PartitionId > 0 and ScopeType = 2 and Active = 1
- 应将结果复制到文件中 在服务器上,例如 C:\LocalScopeIdList.txt
- 运行以下 服务器上的 power shell 脚本并将前三个值更新为 需要。
第 3 步的脚本:
$url = "http://localhost:8080/tfs/defaultcollection"
$localScopeIdList = Get-Content C:\LocalScopeIdList.txt
$cmd = "C:\Program Files\Microsoft Team Foundation Server 15.0\Tools\TFSSecurity.exe"
$collection = "/collection:"+ $url
$permissions = "Read", "Write", "Delete", "ManageMembership", "CreateScope"
foreach($scopeId in $localScopeIdList) {
foreach($permission in $permissions) {
$token = $scopeId + "\"
$param = @("/a+", "Identity", $token, $permission, "adm:", "ALLOW", $collection)
Write-Host $param
& $cmd $param
}
}
我已经在 pre-prod 服务器上成功地尝试了上述方法,因此我希望在本周末将其部署到生产环境中。