如何从powershell中使用最多字段的表变量中获取数据?

如何从powershell中使用最多字段的表变量中获取数据?,powershell,powershell-5.0,Powershell,Powershell 5.0,我有一个$mydata变量,该变量使用命令从广告中获取内容:$mydata=Get ADUser-Filter{(enabled-eq$true)}-Properties*|选择名称、办公室名称、公司 它看起来像: Name OfficeName Company A North ABC B North ABC C North ABC D South KLM E

我有一个
$mydata
变量,该变量使用命令从广告中获取内容:
$mydata=Get ADUser-Filter{(enabled-eq$true)}-Properties*|选择名称、办公室名称、公司

它看起来像:

Name    OfficeName     Company
A       North          ABC
B       North          ABC
C       North          ABC
D       South          KLM
E       South          KLM
F       South          KLM
G       South          BCD
H       South          BCD
I       South          MNO
J       East           FGV
K       East           XYZ
L       East           XYZ
我希望得到一个显示OfficeName和最常用公司的输出,因此预期输出为:

OfficeName     Company
 North          ABC
 South          KLM
 East           XYZ
总有一家公司在多数情况下使用,因此不存在相等计数的情况

我怎样才能做到这一点?我想应该是下面这样,但找不到正确的语法。任何帮助都将不胜感激

$mydata | Group-Object -Property OfficeName| Select-Object OfficeName,@{n='Company'; e = { $_.Group | Group-Object -Property Company | Sort-Object -Property Count -Descending | Select-Object -First 1 -ExpandProperty OfficeName} }

这个对我有用:

$mydata | 
    Group-Object OfficeName | 
    Select-Object @{ n = 'OfficeName'; e = { $_.Name } }, 
                  @{ n = 'Company'; e = { $_.Group | 
                      Group-Object Company | 
                      Sort-Object Count -Descending | 
                      Select-Object -First 1 -ExpandProperty Name } }
输出:

OfficeName Company ---------- ------- East XYZ North ABC South KLM 官名公司 ---------- ------- 东XYZ 北ABC 南荷航
诀窍是使用
名称
,而不是实际的属性名称。
组对象
输出中的
名称
属性存储组所基于的值。

谢谢您保存我的一天