You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MS Graph API 分页查询问题:如何获取更多分页数据?

解决Microsoft Graph分页获取数据问题

你的代码仅执行了单次请求,因此只能拿到第一页(1000条)数据,无法遍历后续分页。另外URI参数格式存在错误,会影响请求的正确性。以下是修正后的代码:

$DeviceList = @()    
# 修正URI参数错误:移除$select前多余的?
$URI = "https://graph.microsoft.com/v1.0/deviceManagement/managedDevices?`$filter=contains(OperatingSystem,'iOS')&`$select=serialNumber,Id"

# 使用do-while循环,确保至少执行一次请求,直到无下一页链接
do {
    $GetDevices = Invoke-RestMethod -Headers $Headers -Uri $URI
    $DeviceList += $GetDevices.value
    # 匹配Graph返回的字段大小写,正确捕获下一页链接
    $URI = $GetDevices.'@odata.nextLink'
} while ($null -ne $URI)

$DeviceList | Export-Csv C:\Users\######\Downloads\Test.csv -Force -Append

关键修改说明:

  • 替换循环逻辑:把if改为do-while循环,先执行首次请求,之后只要@odata.nextLink存在,就持续获取下一页数据,直至遍历所有分页。
  • 修正URI格式:原URI中的&?是错误写法,改为&后Graph API才能正确解析筛选和字段选择参数。
  • 字段大小写匹配:Graph返回的分页链接字段为@odata.nextLink(小写o),原代码的@Odata.nextLink(大写O)会导致无法捕获该值,修正后可正常获取分页链接。

内容的提问来源于stack exchange,提问作者EmanC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 14:45:33