如何从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
南荷航
诀窍是使用
名称
,而不是实际的属性名称。组对象
输出中的名称
属性存储组所基于的值。谢谢您保存我的一天