2014-06-17 8 views
0

intérieur d'une structure Active Directory, il y a des valeurs définies dans ces domaines au sein d'un groupeGroupe par des valeurs uniques des groupes Active Directory

  • extensionAttribute1
  • extensionAttribute2
  • extensionAttribute3
  • extensionAttribute4

Il y a environ 300 groupes avec une ou plusieurs de ces valeurs définies et je suis looki ng pour un moyen efficace d'obtenir ces groupés par extensionAttribute2 dans une table de hachage.

Le format que je souhaite récupérer est ci-dessous. Je l'ai espacé pour qu'il soit plus lisible, mais essentiellement une hashtable avec chaque valeur unique d'extensionAttribute2 étant définie à une valeur qui est un tableau d'objets de groupe qui ont cette valeur dans extensionAttribute2.

@{ 
    "001"[email protected](
      Group-Object-1454, 
      Group-Object-221, 
      Group-Object-33, 
      ... 
     ) 
    "002"[email protected](
      Group178, 
      Group2243, 
      Group3774, 
      ... 
     ) 
    ... 
} 

Mes tentatives ont fini moins que savoureux. Je me rends compte que je pourrais faire un grand look foreach et le construire de cette façon, mais j'espère que cela peut être fait plus efficacement.

Je pensais que cela fonctionnerait, mais il échoue avec Select-Object: null parameter

Get-ADGroup -LdapFilter $Filter -Properties extensionAttribute2 | Select-Object extensionAttribute2, $_ | Group-Object {$_.extensionAttribute2} 

Une autre tentative, je l'ai fait, ce qui était plus fructueux, mais pas tout à fait juste retour des valeurs uniques extensionAttribute2

Get-ADGroup -LdapFilter $Filter -Properties extensionAttribute2 | select-object extensionAttribute2 | Group {$_} 

Cette retourné quelque chose dans la bonne direction, mais je suis perplexe au-delà de cela.

@{ 
    @{extensionAttribute2="001"}, 
    @{extensionAttribute2="002"}, 
    @{extensionAttribute2="003"}, 
    ... 
} 

Des idées?

Répondre

1

Quelque chose comme ça?

$ht = @{} 

Get-ADGroup -LdapFilter $Filter -Properties extensionAttribute2 | 
foreach { $ht[$_.extensionattribute2] += @($_.name) } 

$ht 
+0

Nice, qui a très bien fonctionné – Kirk

Questions connexes