Сортировать 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