首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我正在尝试编写一个Powershell脚本,当我只下载前10个附件时,它将下载所有附件

我正在尝试编写一个Powershell脚本,当我只下载前10个附件时,它将下载所有附件
EN

Stack Overflow用户
提问于 2018-02-06 02:10:19
回答 1查看 568关注 0票数 1
代码语言:javascript
运行
复制
    $password = ConvertTo-SecureString "xxx" -AsPlainText -Force 
$cred = New-Object System.Management.Automation.PSCredential "xxx@xxx.onmicrosoft.com",$password 

$url = "https://outlook.office365.com/api/v1.0/me/messages" 
$today = (Get-Date).AddDays(1).ToString("yyyy-MM-dd")

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

## Loop through each results 
foreach ($message in $messages.value) 
{ 
    # get attachments and save to file system 
    $query = $url + "/" + $message.Id + "/attachments"
    $attachments = Invoke-RestMethod $query -Credential $cred

    # in case of multiple attachments in email 
    foreach ($attachment in $attachments.value) 
    { 
        $attachment.Name 
        $path = "C:\path\" + $attachment.Name 

        $Content = [System.Convert]::FromBase64String($attachment.ContentBytes) 
        Set-Content -Path $path -Value $Content -Encoding Byte 

    } 
}

当它运行时,只下载了10个附件,然后就停止了。我想弄清楚它在10点停止的原因,这样我就可以继续下载整个收件箱。

EN

回答 1

Stack Overflow用户

发布于 2018-02-22 06:02:46

我也有同样的问题。我认为它一次只能处理基于附件大小的X数量。

这(包括我的其余代码)每5分钟在Task Scheduler中运行一次,所以如果它在第一次运行时没有捕获所有邮件,它们将被处理,我猜在后续运行中一次处理10封邮件。

If ($DeleteEmail -eq "Y") {

代码语言:javascript
运行
复制
 $query2 = $url + "/" + $message.Id
代码语言:javascript
运行
复制
 Invoke-RestMethod $query2 -Credential $Credentials -Method Delete

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48628823

复制
相关文章

相似问题

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