Exchange 的 New-MailboxExportRequest 在使用 DateTime 参数传递 ContentFilter 时行为异常

Exchange 的 New-MailboxExportRequest 在使用 DateTime 参数传递 ContentFilter 时行为异常

我正尝试将邮箱中特定日期范围内的电子邮件提取到 PST 中,但使用 DateTime 参数似乎ContentFilter无法按预期工作。

这将导出过去 5 天的所有内容:

$endDate = Get-Date "00:00:00"
$startDate = $endDate.AddDays(-5)

Write-Host "Exporting items between $startDate and $endDate..."

New-MailboxExportRequest -ContentFilter {(Received -ge $startDate) -and (Received -lt $endDate)} -Mailbox "EmailLog" -FilePath "\\ReadyNAS\backup\Mailboxes\EmailLog\EmailLog.pst"

但是 PST 最终包含了邮箱的全部 15+Gb。

如果我手动指定日期,它可以正常工作:

New-MailboxExportRequest -ContentFilter {(Received -ge "01-06-2013 00:00:00") -and (Received -lt "06-06-2013 00:00:00")} -Mailbox "EmailLog" -FilePath "\\ReadyNAS\backup\Mailboxes\EmailLog\EmailLog-man.pst"

我不确定这是否是由于某种区域设置冲突造成的,但我认为传递类型参数可以避免这种愚蠢的情况。我怀疑这是因为如果我打印出日期(第一个示例中的 Write-Host),日期将以美国格式显示:

[PS] C:\Windows\system32>Write-Host "Exporting items between $startDate and $endDate..."
Exporting items between 06/01/2013 00:00:00 and 06/06/2013 00:00:00...

答案1

我确认我已经通过将内容过滤器精确指定为“(Received -ge'$startDate')-and(Received -lt'$endDate')”来解决这个问题,以防止它在以下帮助下变为$null:这个问题

我的客户 Exchange Server 2013 版本/内部版本号是 15.0.847.32。

这可能是一种罕见的情况,但我仍然在这里添加了我的答案,以防它能帮助到某人。

编辑:基于这个概念,我写了一个PowerShell 脚本每月通过电子邮件报告存档期刊邮箱。

答案2

是的,这是一个已知的错误,解决方法是将邮箱日期格式更改为美国格式导出,进行备份,然后更改回您自己的区域格式,然后从使用美国区域设置的帐户运行脚本。

IE

Get-mailbox -Server $Server -resultsize unlimited | Set-MailboxRegionalConfiguration -Language 1033 -DateFormat "M/d/yyyy"

凌乱的。

相关内容