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

如何用PowerShell与MS Graph突破200条限制获取共享个人OneDrive全部项目

共享OneDrive子项全量获取解决方案

方法1:手动API分页循环

Get-MgShareDriveItem -ExpandProperty "children"仅返回前200条是因为Graph API对children集合的默认分页限制。直接调用Graph API并处理@odata.nextLink即可获取全部数据:

$allChildren = @()
$requestUri = "https://graph.microsoft.com/v1.0/shares/$SharedEncodeURLCam/driveItem/children`$top=1000"

do {
    $response = Invoke-MgGraphRequest -Uri $requestUri -Method Get
    $allChildren += $response.value
    $requestUri = $response.'@odata.nextLink'
} while ($requestUri)

# $allChildren即为所有子项集合
  • 手动拼接API请求URI,通过$top=1000将单页数据量拉满(Graph API最大支持每页1000条)
  • 循环判断@odata.nextLink是否存在,直到获取完所有分页数据

方法2:专用Cmdlet自动分页

使用Get-MgSharedDriveItemChild并添加-All参数,该参数会自动处理分页逻辑:

$allChildren = Get-MgSharedDriveItemChild -SharedDriveItemId $SharedEncodeURLCam -All
  • -All参数会自动遍历所有分页链接,无需手动处理
  • 确保Microsoft Graph PowerShell模块为最新版本,旧版本可能不支持该参数,可执行Update-Module Microsoft.Graph更新

注意事项

  • 处理超大量数据时,建议添加Start-Sleep -Seconds 1之类的延迟,避免触发API限流
  • PowerShell 5.1环境下需确保模块兼容性,更新后若仍有问题可重启PowerShell再尝试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 17:25:03