Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PowerShell按邮箱大小对数据中的csv输出文件进行排序_Powershell_Sort Object - Fatal编程技术网

使用PowerShell按邮箱大小对数据中的csv输出文件进行排序

使用PowerShell按邮箱大小对数据中的csv输出文件进行排序,powershell,sort-object,Powershell,Sort Object,我有一个脚本,这是没有任何问题的工作,我唯一的问题是,我不能秩序的输出,因为我需要 我试图删除Sort-object CmdLet,但它没有改变任何事情,我还尝试“玩”Sort-object CmdLet的各种变体 代码如下: $users = Import-Csv "C:\CSV Test\Alias_test.csv" foreach ($user in $users) { Get-MailboxStatistics -Identity $user.UserName |

我有一个脚本,这是没有任何问题的工作,我唯一的问题是,我不能秩序的输出,因为我需要

我试图删除Sort-object CmdLet,但它没有改变任何事情,我还尝试“玩”Sort-object 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文件如下所示:


非常感谢您的帮助

您当前的脚本存在两个问题

首先,每个用户的邮箱统计信息都是单独排序的,因此将
Sort Object
语句移到循环之外

第二个问题是,在对对象进行排序时,
ItemCount
属性不再存在,因为您已将其重命名为
TotalEmails?
,因此请确保更新
属性
参数:

$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

您应该将
排序对象
导出CSV
部分移到foreach循环之外。。。这样应该会快一点,您可以对所有对象进行排序,而不是对每个对象进行排序。;-)感谢您的重播,我需要在最后一个“}”之后使用相同的格式,您的意思是:
}#foreach循环结束排序对象-属性ItemCount |导出Csv“C:\Csv Test\Mailboxe\u size.Csv”-Append-NoTypeInformation
非常感谢您的帮助为什么在“totlaels”之后使用“?”?我猜是弄错了?我很好奇,带字符串表达式的计算属性如何生成图片输出。@WebGhost,因为您在原始帖子中使用了
TotalEmails?
,所以我想真正的问题是,为什么在
邮件总数之后使用
:D@LotPings计算属性中的字符串表达式扩展为取消对命名属性的引用,OPs输出“按设计工作”。请尝试
“Hello World?”|选择@{Name='NumberOfChars';Expression='Length'}
yourself@LotPings我没有Exchange实验室atm的访问权限,但假设内存没有泄露,则“是”值是可排序的:)