如何在Azure DevOps Server 2020中列出TFVC特定文件夹权限
审计Azure DevOps Server 2020中TFVC特定文件夹的权限
方法一:使用tfssecurity命令行工具
核心操作步骤
1. 定位命令工具
tfssecurity.exe默认路径为C:\Program Files\Azure DevOps Server 2020\Tools\,可直接切换到该目录执行命令,或把路径加入系统环境变量。
2. 查询指定项目下的文件夹权限
通过指定项目名称和文件夹路径,精准限定审计范围:
tfssecurity /a /tf "$/项目名称/目标文件夹路径" /server:http://你的服务器地址:8080/tfs/集合名称
参数说明:
/a:展示所有权限条目/tf:指定操作TFVC安全命名空间"$/项目名称/目标文件夹路径":明确要审计的TFVC文件夹路径,通过项目名称限定范围/server:填写Azure DevOps Server的完整地址(包含集合)
3. 生成本地报告
将命令输出重定向到文本文件,留存审计结果:
tfssecurity /a /tf "$/项目名称/目标文件夹路径" /server:http://你的服务器地址:8080/tfs/集合名称 > TFVC权限审计报告.txt
方法二:使用Azure DevOps Security REST API
关键操作步骤
1. 确定TFVC命名空间ID
TFVC的安全命名空间固定ID为2e9eb7ed-3c0a-47d4-87c1-0ffdd275fd87,全版本通用。
2. 构造请求URL
通过token参数限定项目和文件夹,路径中的/需转义为%2F:
GET http://你的服务器地址:8080/tfs/集合名称/_apis/security/permissions/2e9eb7ed-3c0a-47d4-87c1-0ffdd275fd87?token=$PROJECT:项目名称%2F目标文件夹路径&api-version=6.0
3. 身份认证
使用Windows默认凭据或Personal Access Token(PAT)完成请求认证,确保有权限访问安全数据。
4. 解析并导出报告
用脚本解析返回的JSON数据,生成结构化报告。以下是PowerShell示例:
$serverUrl = "http://你的服务器地址:8080/tfs/集合名称" $projectName = "你的项目名称" $folderPath = "目标文件夹路径" $namespaceId = "2e9eb7ed-3c0a-47d4-87c1-0ffdd275fd87" $token = "$PROJECT:$projectName/$folderPath" $encodedToken = [Uri]::EscapeDataString($token) $apiUrl = "$serverUrl/_apis/security/permissions/$namespaceId?token=$encodedToken&api-version=6.0" # 使用Windows凭据发起请求 $response = Invoke-RestMethod -Uri $apiUrl -UseDefaultCredentials # 提取关键权限信息并导出为CSV $permissions = $response.value | Select-Object identityDisplayName, allow, deny, permissionDisplayName $permissions | Export-Csv -Path "TFVC权限审计报告.csv" -NoTypeInformation
内容的提问来源于stack exchange,提问作者huntantr
相关产品推荐
相关产品推荐

