Je suis nouveau sur PowerShell, mais j'ai lu des manuels et je me suis entraîné un peu. Mon objectif est de répertorier tous les utilisateurs de tous les groupes de sécurité sous le chemin spécifié. J'ai trouvé le moyen de le faire:
get-adgroup -Filter * -SearchBase "OU=Groups,DC=corp,DC=ourcompany,DC=Com" | %{Get-ADGroupMember $_.name} | ft name
Mais le problème est que je ne vois pas le nom du groupe. Tout ce que je reçois, c'est un groupe d'utilisateurs. Ce serait bien si quelqu'un pouvait me dire comment afficher le nom du groupe avant que tous les membres de ce groupe soient répertoriés. Merci.
% { "GroupName: $($_.Name)"; "==========" ; Get-ADGroupMember $_ } | ft name
vous obtiendrez également ce que vous recherchez. La réponse de Ryan est encore meilleure, mais c'est une seule ligne si vous le souhaitez.Réponses:
Gimme the codes!
pouvoirs, activez!Le fait est, prenez votre temps et divisez-le en étapes. Je sais que c'est amusant d'essayer de tout faire et que l'évier de la cuisine s'intègre dans une doublure avec Powershell, mais ce n'est en aucun cas requis.
Quelques notes:
Vous n'avez pas besoin de le faire
Get-ADGroupMember
si vous collectez la propriété Members dans laGet-ADGroup
cmdlet initiale . La bonne chose à ce sujet est qu'il réduit de moitié le nombre d'appels que vous devez passer à AD, ce qui devrait accélérer l'exécution de votre script et alléger le fardeau du contrôleur de domaine.$ G.Members affichera tous les membres du groupe $ G ... dans Powershell 3. Dans Powershell 2, vous devrez peut-être encore placer un autre Foreach à l'intérieur du Foreach pour les énumérer via les membres du groupe. ( Yo dawg, je t'ai entendu comme des boucles ... )
J'utilise
Write-Host
ici, ce qui est dégoûtant. Vous ne devriez jamais vraiment l'utiliserWrite-Host
. Au lieu de cela, vous devriez créer et générer des objets, pas du texte, mais c'était un tout autre sujet et j'étais trop paresseux pour le faire pour cette réponse.la source
Voici une bien meilleure solution. Cela mettra tout dans un csv à 3 colonnes avec le nom du groupe, le nom d'utilisateur et le nom du compte sam. Il est beaucoup plus facile de déterminer dans quel groupe une personne se trouve lorsqu'il y a 400 utilisateurs dans un groupe, car vous n'avez pas à faire défiler.
la source
J'ai dû ajouter
.name
après$group
pour faire ce travail pour moi.la source
Si vous rencontrez un
Size Limit
problème avec des groupes contenant plus de 5000 membres, vous pouvez modifier la ligne comme suit:la source
Voici un script qui exporte tous les groupes d'une unité d'organisation vers un fichier séparé pour chaque groupe avec le nom et la description du groupe. Si quelqu'un veut ça ..
la source