【问题标题】:EWS with Powershell: "The property has an invalid value"带有 Powershell 的 EWS:“该属性的值无效”
【发布时间】:2013-06-27 14:51:04
【问题描述】:

我正在尝试通过 EWS/Powershell 遍历邮箱以读取收件箱中邮件的某些属性。这适用于大多数邮箱 - 但并非适用于所有邮箱。我正在使用分页来遍历结果:

$moreItems=$true
$Offset=100
$pageSize=100
while($moreItems)
{
$itemView = new-object Microsoft.Exchange.WebServices.Data.ItemView($pageSize,$Offset,[Microsoft.Exchange.WebServices.Data.OffsetBasePoint]::Beginning)

...

$mails = $currentFolder.FindItems($itemView)


foreach($mail in $mails)
{
   #add-contnet -path "output.txt" -value $mail.subject
}

$itemView.Offset += $mails.Items.Count
if ($mails.MoreAvailable -eq $false)
{
      $MoreItems = $false
}
if ($MoreItems)
{
    $Offset += $pageSize
}
}

正如我所说,这对于某些邮箱来说是完美的 - 有些会遇到异常:

“该属性的值无效。”

此代码行中发生此错误:

$mails = $currentFolder.FindItems($itemView)

如您所见,我正在将所有邮件的主题写入一个 txt 文件。根据页面大小和偏移量,输出文件会列出更多或更少的主题(邮件项目)。例如如果收件箱有 2000 个项目,它将在输出文件中列出 1008 个项目,当我将页面大小设置为 1000 时,它会列出 1907,如果我将其设置为 100 等等。无论如何,我总是会遇到异常(但同样,仅适用于某些邮箱)。

任何想法/任何提示如何深入挖掘?

【问题讨论】:

标签: powershell exchangewebservices


【解决方案1】:

找到了答案:事实证明,当 ipm.note 以外的其他项目驻留在邮箱中时,它会崩溃 - 例如。一个会议请求。我做了一个 searchfilter 只过滤 ipm.note 并将它传递给 finditems() 方法 - 这工作......

【讨论】:

    猜你喜欢
    • 2019-09-05
    • 2016-06-23
    • 1970-01-01
    • 2014-11-22
    • 2016-04-10
    • 2012-04-03
    • 1970-01-01
    • 2021-03-08
    • 2018-02-24
    相关资源
    最近更新 更多