对Invoke-RestMethod的powershell限制?

时间:2018-02-27 10:59:30

标签: powershell

我有这段代码:

$url = "https://outlook.office365.com/api/v1.0/me/messages" 
$date = Get-Date -Format "yyyy-MM-dd"

$messageQuery = "" + $url + "?`$select=Id&`$filter=HasAttachments eq true and DateTimeReceived ge " + $date
$messages = Invoke-RestMethod $messageQuery -Credential $cred 

foreach ($message in $messages.value) 
{

我尝试从11个不同的电子邮件中下载11个附件......但我只得到10个...... Invoke-RestMethod中是否有限制?是我能找到的唯一原因,因为它最多可以完成10个附件......

2 个答案:

答案 0 :(得分:2)

https://outlook.office365.com/api/v1.0/me/messages的回复是分页

每页的默认项目数为10。

您可以申请的最高金额为50。

https://msdn.microsoft.com/en-us/office/office365/api/complex-types-for-mail-contacts-calendar#page-results

分页时检查"@odata.nextLink"的响应正文最重要的部分,例如

"@odata.nextLink": "https://outlook.office365.com/api/v1.0/me/messages/?%24top=10&%24skip=10"

如果存在;点击该链接到下一页的结果!

答案 1 :(得分:1)

Top参数添加到QueryString(如果没有其他参数):

$url = "https://outlook.office365.com/api/v1.0/me/messages?&top=999" 

或:

$messageQuery = "" + $url + "?`$select=Id&`$filter=HasAttachments eq true and DateTimeReceived ge " + $date + '&top=999'