Сортировать CSV-файлы положить в порядке убывания по размеру почтового ящика с PowerShell - PullRequest
0 голосов
/ 08 декабря 2018

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

Я пытался удалить объект сортировки CmdLet, но это не такне меняю ничего, также я пытался «поиграть» с различными вариантами объекта сортировки CmdLet.

вот код:

  $users = Import-Csv "C:\CSV Test\Alias_test.csv"

  foreach ($user in $users) {

  Get-MailboxStatistics -Identity $user.UserName |

   Select-Object @{l="User Name";e="DisplayName"},

   @{l="Mail Box Size";e="TotalItemSize"}, 

   @{l="TotalEmails?";e="itemcount"} |

   Sort-Object -Property ItemCount|

   Export-Csv "C:\CSV Test\Mailboxe_size.csv" -Append -NoTypeInformation

                             } #end of ForEach loop

CSV-файл выглядитвот так:

Wrong order

Большое спасибо за вашу помощь

1 Ответ

0 голосов
/ 08 декабря 2018

Есть две проблемы с вашим текущим скриптом.

Во-первых, статистика почтовых ящиков каждого пользователя сортируется индивидуально, поэтому выведите оператор Sort-Object за пределы цикла.

Вторая проблема заключается в том, что к моменту сортировки объектов, ItemCount свойство больше не существует, поскольку вы переименовали его в TotalEmails?, поэтому обязательно обновите аргумент Property:

$users = Import-Csv "C:\CSV Test\Alias_test.csv"

$stats = foreach ($user in $users) {
    Get-MailboxStatistics -Identity $user.UserName |
    Select-Object @{l="User Name";e="DisplayName"},
    @{l="Mail Box Size";e="TotalItemSize"}, 
    @{l="TotalEmails?";e="itemcount"} 
} #end of ForEach loop

$Stats |Sort-Object -Property TotalEmails? |Export-Csv "C:\CSV Test\Mailboxe_size.csv" -Append -NoTypeInformation
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...