Powershell Azure DevOps Rest Api用于获取具有延续令牌的所有项目

Powershell Azure DevOps Rest Api用于获取具有延续令牌的所有项目,powershell,azure-devops,azure-devops-rest-api,Powershell,Azure Devops,Azure Devops Rest Api,我正在尝试使用Azure DevOps Rest Api获取Azure DevOps和PowerShell中所有项目的列表 但是,当我运行脚本时,它会不断返回100个项目。当我添加延续标记时,它循环并返回相同的项目4次。所以给我总共400个项目。我们目前有385个项目 $Org=“ORGNAME” $personalToken=“MYTOKEN” ################################################### 写入主机“初始化身份验证上下文”-Foregr

我正在尝试使用Azure DevOps Rest Api获取Azure DevOps和PowerShell中所有项目的列表

但是,当我运行脚本时,它会不断返回100个项目。当我添加延续标记时,它循环并返回相同的项目4次。所以给我总共400个项目。我们目前有385个项目

$Org=“ORGNAME”
$personalToken=“MYTOKEN”
###################################################
写入主机“初始化身份验证上下文”-ForegroundColor黄色
$token=[System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(“:$($personalToken)”)
$header=@{authorization=“Basic$token”}
$projects=$null
功能获取项目{
做
{
$uri=”https://dev.azure.com/$Org/_api/projects?continuationToken=$continuationToken&api版本=5.1“
$ProjSets=Invoke WebRequest-Uri$Uri-Method Get-ContentType“application/json”-Headers$header
$continuationToken=$ProjSets.Headers.'x-ms-continuationToken'
$ProjectSet=$projset.content |从Json转换
$projects+=$ProjectSet.value
}while($continuationToken)
写入主机“$continuationToken”-ForegroundColor青色
$projects.name
$projects.count
}
获取项目

我希望看到$projects.count等于我在组织中的项目总数,在我的例子中是385。我似乎不明白我哪里出了问题,为什么它一次又一次地给了我同样的100个项目和延续令牌。

仍然不确定为什么“do while”循环不起作用,但我只使用了下面的while循环


$Org=“ORGNAME”
$personalToken=“MYTOKEN”
###################################################
写入主机“初始化身份验证上下文”-ForegroundColor黄色
$token=[System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(“:$($personalToken)”)
$header=@{authorization=“Basic$token”}
$projects=$null
功能获取项目{
$Uri=”https://dev.azure.com/$Org/_api/projects?continuationToken=$continuationToken&api版本=4“
$ProjSets=Invoke WebRequest-Uri$Uri-Method Get-ContentType“application/json”-Headers$header
$continuationToken=$ProjSets.Headers.'x-ms-continuationToken'
$ProjectSet=$projsets.content |从Json转换
$projects=$ProjectSet.value.name
while($ContinuationToken-ne$null)
{
$Uri=”https://dev.azure.com/$Org/_api/projects?continuationToken=$continuationToken&api版本=5.1“
$ProjSets=Invoke WebRequest-Uri$Uri-Method Get-ContentType“application/json”-Headers$header
$continuationToken=$ProjSets.Headers.'x-ms-continuationToken'
$ProjectSet=$ProjSets.content |从Json转换
$projects+=$ProjectSet.value.name
$global:org\u project\u names=$projects
写入主机“项目总数=$($projects.count)”
}
}```

您可以使用
$top
continuationToken
对Azure Git引用进行分页。以下是文件: