首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell Invoke-RestMethod分页

Powershell Invoke-RestMethod分页
EN

Stack Overflow用户
提问于 2021-07-14 20:33:43
回答 1查看 52关注 0票数 0

我正在尝试从我们的Azure B2C租户获取所有用户的列表。

在互联网的帮助下,我能够创建下面的powershell脚本。但结果并不完整,它只显示了100个用户。在四处寻找之后,我发现我可能应该对分页做些什么,但是我不能让它工作。

有人能帮我修改下面的脚本以返回所有用户吗?

代码语言:javascript
复制
# Application (client) ID, tenant Name and secret
$clientId = "**********"
$tenantName = "*********"
$clientSecret = "************"
$resource = "https://graph.microsoft.com/"


$ReqTokenBody = @{
    Grant_Type    = "client_credentials"
    Scope         = "https://graph.microsoft.com/.default"
    client_Id     = $clientID
    Client_Secret = $clientSecret
} 

$TokenResponse = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$TenantName/oauth2/v2.0/token" -Method POST -Body $ReqTokenBody


$Url = "https://graph.microsoft.com/beta/users?$select=displayName"
$Data = Invoke-RestMethod -Headers @{Authorization = "Bearer $($Tokenresponse.access_token)"} -Uri $Url -Method Get
$Users = ($Data |select-object Value).Value

$Users | Format-Table DisplayName -AutoSize
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-15 20:40:30

好的,我让它在Powershell Core (7.1.3版)中工作。

这是我最终使用的代码。

代码语言:javascript
复制
# Application (client) ID, tenant Name and secret
$clientId = "**************"
$tenantName = "***************"
$clientSecret = "******************"
$resource = "https://graph.microsoft.com/"


$ReqTokenBody = @{
    Grant_Type    = "client_credentials"
    Scope         = "https://graph.microsoft.com/.default"
    client_Id     = $clientID
    Client_Secret = $clientSecret
} 

$TokenResponse = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$TenantName/oauth2/v2.0/token" -Method POST -Body $ReqTokenBody

$Url = "https://graph.microsoft.com/beta/users?$select=displayName"
$UserResponse = Invoke-RestMethod -Headers @{Authorization = "Bearer $($Tokenresponse.access_token)"} -Uri $Url -Method Get -Verbose

$CloudUser = $UserResponse.Value
$UserNextLink = $UserResponse."@odata.nextLink"

while ($UserNextLink -ne $null) {

    $UserResponse = (Invoke-RestMethod -Headers @{Authorization = "Bearer $($Tokenresponse.access_token)"} -Uri $UserNextLink -Method Get -Verbose)
    $UserNextLink = $UserResponse."@odata.nextLink"
    $CloudUser += $UserResponse.value
}

$CloudUser | Format-Table DisplayName -AutoSize
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68378193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档