如何从 table 变量中获取数据,其中某个字段在 powershell 中最常用?
How to get data from table variable where a field is most used in powershell?
我有 $mydata
个变量,其中包含来自 AD 的内容,使用命令:$mydata = Get-ADUser -Filter {(enabled -eq $true)} -Properties * | select name,OfficeName,Company
看起来像:
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
诀窍是使用 Name
而不是实际的 属性 名称。 Group-Object
输出中的 Name
属性 存储组所基于的值。
我有 $mydata
个变量,其中包含来自 AD 的内容,使用命令:$mydata = Get-ADUser -Filter {(enabled -eq $true)} -Properties * | select name,OfficeName,Company
看起来像:
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
诀窍是使用 Name
而不是实际的 属性 名称。 Group-Object
输出中的 Name
属性 存储组所基于的值。