none
MailboxExportRequest, Powershell и формат даты RRS feed

  • Общие обсуждения

  • [PS] D:\>New-MailboxExportRequest -Name mzvtest06 -Mailbox mzv -ContentFilter {(Received -lt "01/06/2013") -and (Received -gt "01/05/2013")} -FilePath "\\xxxxxxx\tmpmzv$\mzv1.pst"

    Name Mailbox Status
    ---- ------- ------
    mzvtest06 xxxxxxxxx.xxxxx.xx/Users/mzv Queued


    проверяю данные в mzv1.pst все красиво - ровно данные за месяц май….

    Но если попытаться разбить данный интервал

    [PS] D:\>New-MailboxExportRequest -Name mzvtest07 -Mailbox mzv -ContentFilter {(Received -lt "31/05/2013") -and (Received -gt "16/05/2013")} -FilePath "\\ххххххххх\tmpmzv$\mzv2.pst"

    Указано недопустимое значение ContentFilter. Недопустимое значение "ContentFilter". Значение "31/05/2013" не может быть преобразовано в тип System.DateTime. --> Значение "31/05/2013" не может быть преобразовано в тип System.DateTime.
    + CategoryInfo : InvalidArgument: ((Received -lt "...t "16/05/2013"):String) [], ContentFilterInvalidPerm anentException
    + FullyQualifiedErrorId : 1C1CF0B
    + PSComputerName : xxxxxxx.xxxxxx.xxxxxx.xx

    Проблема явно с форматом даты
    Потому как

    [PS] D:\>New-MailboxExportRequest -Name mzvtest07 -Mailbox mzv -ContentFilter {(Received -lt "05/31/2013") -and (Received -gt "05/16/2013")} -FilePath "\\xxxxxxxx\tmpmzv$\mzv2.pst"

    Name Mailbox Status
    ---- ------- ------
    mzvtest07 xxxxxx.xxxxx.xx/Users/mzv Queued

    Но, увы результат mzv2.pst не данные ящика за вторую половину мая, а архив без единого сообщения…

    _________________
    С уважением, Карина
    6 июня 2013 г. 11:11

Все ответы

  • похоже где то с настройками локализации не состыкуется, попробуйте поиграть параметром -ContentFilterLanguage

    6 июня 2013 г. 16:01
  • PS] D:\>New-MailboxExportRequest -Name mzvtest08 -Mailbox mzv -ContentFilterLanguage 'ru-RU'  -ContentFilter {(Received

     -lt "31/05/2013") -and (Received -gt "16/05/2013")} -FilePath "\\xxxxxxxxxxxx\tmpmzv$\mzv4.pst"

    Указано недопустимое значение ContentFilter. Недопустимое значение "ContentFilter". Значение "31/05/2013" не может быть

     преобразовано в тип System.DateTime. --> Значение "31/05/2013" не может быть преобразовано в тип System.DateTime.

        + CategoryInfo          : InvalidArgument: ((Received -lt "...t "16/05/2013"):String) [], ContentFilterInvalidPerm

       anentException

        + FullyQualifiedErrorId : 1C1CF0B

        + PSComputerName        : xxxxxxxxxx.xxxxxxxx.xxxxxxxx.xx

    При том  что

    [PS] D:\>(get-culture).DateTimeFormat.ShortDatePattern
    dd.MM.yyyy


    Все  еще ищу решение...

    Вот  на  что  обратила  внимание (ссылки,  увы пока размещать  не могу - с  просторов интернета):

    Что интересно – это не зависит от региональных настроек системы – по умолчанию формат всегда американский. Так было сделано для того чтобы скрипты работали одинаково на системах с любыми региональными настройками.

    Если всё же необходимо разобрать дату в соответствии с региональными настроками, то следует использовать статический метод Parse класса.....

    -----------------

    Результат - не верная  выборка

    [PS] D:\>$data15=[dateTime]::Parse("15/05/2013",([Globalization.CultureInfo]::CreateSpecificCulture('ru-RU')))

    [PS] D:\>$data31=[dateTime]::Parse("31/05/2013",([Globalization.CultureInfo]::CreateSpecificCulture('ru-RU')))

    [PS] D:\>$data15

    15 мая 2013 г. 0:00:00

    [PS] D:\>$data31

    31 мая 2013 г. 0:00:00

    [PS] D:\>$data31 | get-member

    TypeName: System.DateTime

    [PS] D:\>New-MailboxExportRequest -Name mzvtest08 -Mailbox mzv -ContentFilterLanguage 'ru-RU'  -ContentFilter {(Received

     -le $Data31) -and (Received -ge $Data15)} -FilePath "\\xxxxxxxxxxxxxx\tmpmzv$\mzv4.pst"

     

    Name                                           Mailbox                                        Status

    ----                                           -------                                        ------

    mzvtest08                                     xxxxxxxxxxxxx/Users/mzv                       Queued

     

    --------------------


     


  • Вроде наоборот месяц/день/год подходит

    Received -lt "08/25/2015" например

    26 августа 2015 г. 4:38