Я пытаюсь извлечь электронные письма с определенным диапазоном дат из почтового ящика в 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 + Гб почтового ящика.
Если я укажу даты вручную, все будет нормально:
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...
Я подтверждаю, что решил эту проблему, указав фильтр содержимого в точности как «(Received -ge '$ startDate') -and (Received -lt '$ endDate')», чтобы он не стал $ null с помощью этот вопрос.
Версия / сборка моего клиента Exchange Server 2013 нет. 15.0.847.32.
Это может быть редкое состояние, но я добавил сюда свой ответ на случай, если это кому-то поможет.
редактировать: Основываясь на концепции, я написал Сценарий PowerShell для ежемесячного архивирования почтового ящика журнала с отчетом по электронной почте.
Да, это известная ошибка. Обходной путь - изменить формат даты почтовых ящиков на экспорт в формате США, сделать резервную копию, затем вернуться к своему региональному формату и запустить сценарий из учетной записи с использованием региональных настроек США.
т.е.
Get-mailbox -Server $Server -resultsize unlimited | Set-MailboxRegionalConfiguration -Language 1033 -DateFormat "M/d/yyyy"
Беспорядочный.