PowerShell O365 API列表子文件夹

时间:2016-06-09 14:52:59

标签: rest powershell outlook office365 directory

我正在尝试获取O365 Outlook帐户中特定文件夹中所有子文件夹的列表。到目前为止,我有以下脚本,我明确输入父文件夹ID并在子文件夹上运行查询。它正在工作,但只有在我希望看到的大约80个文件夹时才返回前10个结果。

任何关于退回所有儿童用品的建议都将不胜感激!感谢。

<div class="widget_stripe">

1 个答案:

答案 0 :(得分:1)

默认情况下,消息 ChildFolders 属性,集合或 CalendarView 上的GET请求会返回10个条目(最多50个) 。您可以使用 $ top 查询参数来设置最大数量,从而更改此行为。

这是一个通过使用'@ odata.nextLink'从集合中获取所有数据的示例:

$accessToken=''
$apiURL='https://outlook.office.com/api/v1.0/me/folders?$select=displayname&$top=2'


do{

$query=invoke-restmethod -Uri $apiURL -Headers @{Authorization=("bearer {0}" -f $accessToken)} 
$values =$query| ForEach-Object{$_.Value} 
$nextLink= $query | Select-Object -Property '@odata.nextlink'

$folders = $values | Select-Object -Property DisplayName

$results = foreach($folder in $folders){
    $DisplayName = $folder.DisplayName

    Write-Host "CLIENT: $DisplayName"
}
if($nextLink.'@odata.nextLink'){
    $apiURL=$nextLink.'@odata.nextLink'.ToString()
}


}while($nextLink.'@odata.nextLink')

如果您使用'nextlink'跟踪请求,您会发现下一个链接的模式使用'skip'和'top'来从集合中获取页面。这是一个供您参考的图: enter image description here