2012-06-04 3 views
1

J'ai un script qui répertorie tous les groupes avec quelques détails. Parmi leurs autres membres. Par défaut, les membres sont affichés en tant que DN. Comment puis-je montrer seulement leurs noms (par exemple Jon Doe, Jane Doe, ...).Powershell Get-ADgroup afficher les noms des membres en ligne

Actuellement mon code est le suivant:

$Groups = Get-ADGroup -Filter * -SearchBase $SearchBase -properties $GroupColumns | Where-Object {$_.GroupCategory -eq "Distribution"} | Sort-Object Name | Select-Object $GroupTableHeader 

Cela renvoie tous les groupes avec toutes les colonnes que je veux. Mais pour les membres colonnes du contenu est affiché comme CN = John Doe, OU = Utilisateurs, DC = société, DC = com CN = Jane Doe, OU = Utilisateurs, DC = société, DC = com

Merci d'avance pour toute l'aide

Répondre

0

Vous pouvez émettre un Get-ADObject pour chaque membre et obtenir juste le nom mais c'est une opération coûteuse. Vous pouvez utiliser une expression régulière pour extraire les noms:

$_.Member -replace '^CN=([^,]+).+$','$1' 

Les captures ci-dessus tout ce qui suit « CN = » jusqu'à ce que la première virgule, et remplace toute la chaîne avec le match.

+0

qui pourrait fonctionner :) Mais je pense que ma syntaxe n'est pas correcte. Ceci: 'Get-ADGroup -Filter * -SearchBase" DC = domaine, dc = com "-propriétés membres | select-object {$ _. Member -replace '^ CN = ([^,]) +. + $', '$ 1'} 'ne renvoie qu'un '{}' vide par membre – Walter81

+0

Essayez ceci, il va ajouter un nouveau propriété au résultat appelé 'Membre': Get-ADGroup -Filter * -SearchBase "DC = domaine, dc = com" -propriétés membres | Select-Object *, @ {Name = 'Membre'; Expression = {$ _. Membres -réplace '^ CN = ([^,] +). + $', '$ 1'}} –

+0

qui a fonctionné (et avec essai et erreur J'aurais dû pouvoir le découvrir aussi; o). Merci pour le conseil! Je ne savais même pas que Powershell soutenait aussi les expressions régulières. – Walter81

Questions connexes