Powershell 按Active Directory组中的唯一值分组
在Active Directory结构内部,在组中的这些字段中设置了值Powershell 按Active Directory组中的唯一值分组,powershell,active-directory,powershell-3.0,Powershell,Active Directory,Powershell 3.0,在Active Directory结构内部,在组中的这些字段中设置了值 扩展属性1 可扩展属性2 外延三元 可扩展属性4 大约有300个组设置了一个或多个这些值,我正在寻找一种有效的方法,通过extensionAttribute2在哈希表中对这些值进行分组 我希望检索的格式如下。我将其隔开以使其更具可读性,但本质上是一个哈希表,其中extensionAttribute2的每个唯一值都被设置为一个值,该值是在extensionAttribute2中具有该值的组对象数组 @{ "001"=@
- 扩展属性1
- 可扩展属性2
- 外延三元
- 可扩展属性4
@{
"001"=@(
Group-Object-1454,
Group-Object-221,
Group-Object-33,
...
)
"002"=@(
Group178,
Group2243,
Group3774,
...
)
...
}
我的尝试结果并不令人满意。我意识到我可以做一个大的foreach外观,并以这种方式构建它,但我希望这可以做得更有效
我原以为这会起作用,但在使用Select Object:null参数时失败了
Get-ADGroup -LdapFilter $Filter -Properties extensionAttribute2 | Select-Object extensionAttribute2, $_ | Group-Object {$_.extensionAttribute2}
我所做的另一次尝试更富有成效,但并没有完全返回唯一的extensionAttribute2值
Get-ADGroup -LdapFilter $Filter -Properties extensionAttribute2 | select-object extensionAttribute2 | Group {$_}
这让我找到了正确的方向,但我被难倒了
@{
@{extensionAttribute2="001"},
@{extensionAttribute2="002"},
@{extensionAttribute2="003"},
...
}
有什么想法吗?像这样的吗
$ht = @{}
Get-ADGroup -LdapFilter $Filter -Properties extensionAttribute2 |
foreach { $ht[$_.extensionattribute2] += @($_.name) }
$ht