Powershell格式表或选择对象仅显示最佳结果

Sch*_*ler 1 sorting powershell formatting exchange-server-2007

我正在尝试查找发送最多电子邮件的用户.但最后我只想显示前10位(或n位数)的发件人.有没有办法只使用select-object或format-table显示最佳结果

$Messages = Get-ExchangeServer * | where{$_.ServerRole -eq "HubTransport"} | %{get-messagetrackinglog -server $_.name -EventID "SEND" -Start (get-date -format G).AddDays(-1) -ResultSize unlimited}) 2>&1 | out-null

$messages | where{$_.sender -like "*@OurDomain.com*"} | select sender | group sender | sort count -Descending | ft count,name
Run Code Online (Sandbox Code Playgroud)

有没有办法让这只显示最佳结果?

我能想到的唯一方法是将它们存储在变量中并将它们输出到for循环中

Eri*_*ris 5

之前ft,添加:

select -first 10
Run Code Online (Sandbox Code Playgroud)

用您想要的数量替换10.

所以完整的命令是:

$messages | where{$_.sender -like "*@OurDomain.com*"} | select sender | group sender | sort count -Descending | select -first 10 | ft count,name
Run Code Online (Sandbox Code Playgroud)