none
Exchange 2016 Get-MailboxStatistics | Sort-Object TotalItemSize RRS feed

  • Вопрос

  • Коллеги, доброго времени!

    Чего-то у меня не работает вывод размера ящиков на Exchange 2016.

    Много вариантов найденных примеров попробовал.

    Например из последних:

    > Get-Mailbox | Get-MailboxStatistics | Sort-Object TotalItemSize -desc | Select-Object -First 5 | ft displayname
    ,@{Expression={$_.TotalItemSize.Value.ToGb()};label="Total Mailbox Size in Gb"}
    
    

    Тут имеем полное безразличие к типу объема:

    DisplayName           Total Mailbox Size in Gb
    -----------           ------------------------
    Сергей
    Валентина
    Мария
    Денис
    Светлана
    


    Ну ок, идем дальше:

    > Get-Mailbox | Get-MailboxStatistics | Sort-Object TotalItemSize -desc | Select-Object -First 5 | ft displayname
    , TotalItemSize

    Результат не лучше:

    DisplayName           TotalItemSize
    -----------           -------------
    Сергей                521.1 MB (546,427,982 bytes)
    Валентина             650.8 MB (682,397,286 bytes)
    Мария                 801.2 MB (840,100,465 bytes)
    Денис                 12.6 MB (13,209,430 bytes)
    Светлана              113 MB (118,477,664 bytes)

    Я знаю ящики есть больших размеров, ~8Gb, да и топ5 он даже не выстраивает как надо.

    Что-то поменялось в 16? Или я где-то не доткнул?

    Спасибо! :)

    13 апреля 2017 г. 15:57

Ответы

  • Если запускаете не в EMS, а через PsSession, TotalItemSize.Value - вернет тип String и методов ToX не будет:

    Get-Mailbox | Get-MailboxStatistics | Sort-Object {$_.TotalItemSize.Value -replace '^.+\((.+\))','$1' -replace '\D' -as [long]} -desc | Select-Object -First 5 | ft displayname, @{n="TotalItemSize";e={($_.TotalItemSize.Value -replace '^.+\((.+\))','$1' -replace '\D' -as [long])/1gb}}


    • Изменено Kazun 13 апреля 2017 г. 16:40
    • Помечено в качестве ответа Oleg.A 14 апреля 2017 г. 9:25
    13 апреля 2017 г. 16:38

Все ответы

  • Если запускаете не в EMS, а через PsSession, TotalItemSize.Value - вернет тип String и методов ToX не будет:

    Get-Mailbox | Get-MailboxStatistics | Sort-Object {$_.TotalItemSize.Value -replace '^.+\((.+\))','$1' -replace '\D' -as [long]} -desc | Select-Object -First 5 | ft displayname, @{n="TotalItemSize";e={($_.TotalItemSize.Value -replace '^.+\((.+\))','$1' -replace '\D' -as [long])/1gb}}


    • Изменено Kazun 13 апреля 2017 г. 16:40
    • Помечено в качестве ответа Oleg.A 14 апреля 2017 г. 9:25
    13 апреля 2017 г. 16:38
  • Не лечь, не встать, как до такого вообще возможно дойти?! :)

    -replace '^.+\((.+\))','$1' -replace '\D' -as [long]

    Kazun, поклон! 

    14 апреля 2017 г. 9:25
  • Если запускаете не в EMS, а через PsSession, TotalItemSize.Value - вернет тип String и методов ToX не будет:

    Get-Mailbox | Get-MailboxStatistics | Sort-Object {$_.TotalItemSize.Value -replace '^.+\((.+\))','$1' -replace '\D' -as [long]} -desc | Select-Object -First 5 | ft displayname, @{n="TotalItemSize";e={($_.TotalItemSize.Value -replace '^.+\((.+\))','$1' -replace '\D' -as [long])/1gb}}


    Добрый день!

    А можно пояснить? что мы тут делаем словами, что на что заменяем?

    Первое, это регулярное выражение, захватывающее все значения TotalItemSize: Как производится захват? (начало строки, потом любой символ один раз и более, а дальше почему по две скобки?

    А что за $1?


    13 декабря 2017 г. 10:22