我正试图从邮箱中提取某个date范围的电子邮件到PST,但使用ContentFilter的DateTime参数似乎没有按预期方式工作。
这应该导出过去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之内。
如果我手动指定date,它工作正常:
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"
我不确定这是否是由于某种区域设置的冲突,但我会认为传递一个types化的参数将避免这种愚蠢。 我怀疑这是因为如果我打印出date(第一个例子中的写主机)date以美国格式出现:
[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...
我确认我已经通过将内容filter完全指定为“(Received -ge'$ startDate')”和“(Received -lt'$ endDate')”来解决这个问题,以防止在此问题的帮助下它变为$ null。
我的客户端的Exchange Server 2013版本/版本号。 是15.0.847.32。
这可能是一种罕见的情况,我仍然在这里添加我的答案,以防万一它有助于某人。
编辑 :基于这个概念,我已经编写了一个PowerShell脚本来每月存档邮箱报告。
是的,它是一个已知的错误解决方法是将邮箱date格式更改为美国格式导出,做备份,然后更改回到您自己的区域格式,并使用美国区域设置帐户运行脚本。
即
Get-mailbox -Server $Server -resultsize unlimited | Set-MailboxRegionalConfiguration -Language 1033 -DateFormat "M/d/yyyy"
乱。