我正尝试将邮箱中特定日期范围内的电子邮件提取到 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"
凌乱的。