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

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

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

вот код:

  $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-файл выглядит так:

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

1 ответ

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

Во-первых, статистика почтовых ящиков каждого пользователя сортируется индивидуально, поэтому переместите 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
Другие вопросы по тегам