【发布时间】:2022-09-28 20:38:43
【问题描述】:
我想得到一个目标的能力在下面azure devops 部署组使用 Powershell REST API。但是我不确定哪个 URL 可以获取这些功能。我的 Powershell 脚本一直在工作,直到获取 \'targets\' 的状态。如果我们可以做任何事情来获取功能,请提供帮助。
下面是我的脚本,它一直工作到获取目标详细信息:
$projects = \"testing\"
$projectlist = $projects.split(\';\')
$PAT = \"#######################################33\"
$Header = @{Authorization = \'Basic \' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(\":$($PAT)\")) }
foreach($projectName in $projectlist){
write-host \"=================================================\"
$baseURL = \"https://dev.azure.com/abc/$($projectName)/_apis/distributedtask/deploymentgroups\"
$deploymentgroup=Invoke-RestMethod -Uri \"https://dev.azure.com/abc/$($projectName)/_apis/distributedtask/deploymentgroups?api-version=6.0-preview.1\" -Method get -Headers $Header
$deploymentgroupsname=$deploymentgroup.value.name
foreach($deploymentgroupname in $deploymentgroupsname){
$deploymentGroupURL = \"$($baseURL)?name=$($deploymentgroupname)&api-version=6.0\"
try{
$deploymentgroup=Invoke-RestMethod -Uri \"$deploymentGroupURL\" -Method get -Headers $Header
}catch{
write-host \"URL is not accessible - $deploymentGroupURL\"
}
$deploymentGroupResponse=$deploymentgroup.value
$deploymentGroupid=$deploymentGroupResponse.id
try{
$targets=Invoke-RestMethod -Uri \"https://dev.azure.com/abc/$($projectName)/_apis/distributedtask/deploymentgroups/$($deploymentGroupid)/targets?api-version=6.0-preview.1\" -Method get -Headers $Header
}catch{
write-host \"URL is not accessible - $deploymentGroupURL\"
}
if($null -ne $deploymentGroupId){
$targets.value.agent|select name, status|%{
$hostname=$_.name
$Status=$_.status
if($status -eq \"offline\"){
$targetURL = \"$($baseURL)/$deploymentGroupId/targets?name=$($hostName)&api-version=6.0-preview.1\"
try{
$target = (Invoke-RestMethod -Uri $targetURL -Method get -Headers $Header).value
$targetId = $target.id ;
if($null -ne $targetId){
$url = \"$($baseURL)/$deploymentGroupId/targets/$($targetId)?api-version=6.0\"
try{
write-host \"Projectname is : $projectName\"
write-host \"deploymentGroupname is : $deploymentgroupname\"
write-host \"Server $hostname is not pingble\"
}
catch{
write-host \"TARGET DELETE ERROR: $hostName\";Write-Error $_.Exception.Message
}
}
else{
write-host \"Target $hostName NOT Found in DeploymentGroup $environment.\"
}
}catch {
write-host \"TARGET LIST ERROR\";Write-Error $_.Exception.Message
}
}
}
}else{
write-host \"DeploymentGroup $deploymentgroupname NOT FOUND in $projectName\"
}
}
}
标签: powershell azure-devops-rest-api azure-devops-deploymentgroups