Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 按Active Directory组中的唯一值分组_Powershell_Active Directory_Powershell 3.0 - Fatal编程技术网

Powershell 按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"=@

在Active Directory结构内部,在组中的这些字段中设置了值

  • 扩展属性1
  • 可扩展属性2
  • 外延三元
  • 可扩展属性4
大约有300个组设置了一个或多个这些值,我正在寻找一种有效的方法,通过extensionAttribute2在哈希表中对这些值进行分组

我希望检索的格式如下。我将其隔开以使其更具可读性,但本质上是一个哈希表,其中extensionAttribute2的每个唯一值都被设置为一个值,该值是在extensionAttribute2中具有该值的组对象数组

@{
  "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