获取与特定生成定义[Azure Devops]关联的所有安全组和用户
我已查阅了以下文件: 对于特定的构建定义,我希望能够通过code/powershell脚本获取与之关联的所有安全组和用户,并将其输出到json文件中 任何帮助都将不胜感激!我尝试过卷曲多个api,但没有得到我需要的获取与特定生成定义[Azure Devops]关联的所有安全组和用户,azure,powershell,azure-devops,azure-devops-rest-api,Azure,Powershell,Azure Devops,Azure Devops Rest Api,我已查阅了以下文件: 对于特定的构建定义,我希望能够通过code/powershell脚本获取与之关联的所有安全组和用户,并将其输出到json文件中 任何帮助都将不胜感激!我尝试过卷曲多个api,但没有得到我需要的 谢谢 有一个api未被记录。请尝试以下方法: POST https://dev.azure.com/{org name}/_apis/Contribution/HierarchyQuery/project/{project name}?api-version=5.0-preview
谢谢 有一个api未被记录。请尝试以下方法:
POST https://dev.azure.com/{org name}/_apis/Contribution/HierarchyQuery/project/{project name}?api-version=5.0-preview.1
请求正文:
{
"contributionIds": [
"ms.vss-admin-web.security-view-members-data-provider"
],
"dataProviderContext": {
"properties": {
"permissionSetId": "33344d9c-fc72-4d6f-aba5-fa317101a7e9",
"permissionSetToken": "{token}",
"sourcePage": {
"url": "https://dev.azure.com/{org name}/{project name}/_build?definitionId={build definition id}&_a=summary",
"routeId": "ms.vss-build-web.pipeline-details-route",
"routeValues": {
"project": "{project name}",
"viewname": "details",
"controller": "ContributedPage",
"action": "Execute",
"serviceHost": "{org name}"
}
}
}
}
}
一些关键点您应该注意:
:这里是permissionSetId
一个固定值,表示生成安全性的33344d9c-fc72-4d6f-aba5-fa317101a7e9
名称空间ID
:这是可用于获取 安全信息。您可以在下面运行以获取您需要的令牌 应该使用permissionSetToken
az-devops安全权限列表--id 33344d9c-fc72-4d6f-aba5-fa317101a7e9——主题{您的账户} --输出表--组织https://dev.azure.com/{org name}--项目{project name}
:这里的url
值用于告诉系统哪个特定 要检查的构建。只需替换相应的url
/org即可 名称
/项目名称
输入提供的URL示例定义id
此外,我还为您编写了一个shot powershell脚本:
$token = "{token}"
$url="https://dev.azure.com/{org name}/_apis/Contribution/HierarchyQuery/project/{project name}?api-version=5.0-preview.1"
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))
$context=@"
{
"contributionIds": [
"ms.vss-admin-web.security-view-members-data-provider"
],
"dataProviderContext": {
"properties": {
"permissionSetId": "33344d9c-fc72-4d6f-aba5-fa317101a7e9",
"permissionSetToken": "{token}",
"sourcePage": {
"url": "https://dev.azure.com/{org name}/{project name}/_build?definitionId={build definition id}&_a=summary",
"routeId": "ms.vss-build-web.pipeline-details-route",
"routeValues": {
"project": "{project name}",
"viewname": "details",
"controller": "ContributedPage",
"action": "Execute",
"serviceHost": "{org name}"
}
}
}
}
}
"@
$response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Basic $token"} -Method Post -Body $context -ContentType "application/json"
Write-Host "results = $($response.dataProviders.'ms.vss-admin-web.security-view-members-data-provider'.identities.displayname| ConvertTo-Json -Depth 100)"