Question Compter les utilisateurs dans chaque groupes AD

Plus d'informations
il y a 16 ans 6 mois #5316 par Burgun
Bonjour,

Je cherche à comptabiliser le nombre d'utilisateur dans chaque groupe qui compose un annuaire AD.

Le but étant de repérer des les groupes ceux qui contiennent un certains nombre de user

Pour le moment je n'ai pas été très loin

[code:1]
#Je récupere tous les groupes
$ldapQuery = \"(&(objectCategory=group))\"
$de = new-object system.directoryservices.directoryentry
$ads = new-object system.directoryservices.directorysearcher -argumentlist $de,$ldapQuery
$listgroup = $ads.findall()
$listgroup

#pour chaque groupe je liste les users
foreach ($member in $listgroup) {

}[/code:1]

je me suis basé sur un bout de code trouvé ici. Ce que je ne sais pas c'est quelle requête rentrée pour lister les users de chaque groupe.

Si quelqu'un peut m'aider<br><br>Message édité par: bvivi57, à: 18/09/09 10:14

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 1 mois #21508 par Alexandre
Bonjour !

Je débute encore mais il me semble que pour lister, des commandes toutes simples peuvent convenir.

Si tu veux lister les résultats dans un seul fichier texte, tu peux écrire, dans ton bloc ForEach:

$file = new-item \&quot;C:\dossier\NomDeTonFichier.txt\&quot; –type file

//Ce qui créera le fichier, puis:

$fichier = \&quot;C:\dossier\NomDeTonFichier.txt\&quot;

/*pour mettre le chemin d'accès dans une variable, afin d'éviter de devoir la retaper à chaque fois, et*/

ADD-content -path $fichier -value \&quot;cequetuveuxécrire\&quot;

/*Pour rajouter la ligne \&quot;cequetuveuxécrire\&quot; dans ton fichier \&quot;NomDeTonFichier.txt\&quot; accessible depuis $fichier. */

__________________________________________________


Il me semblerait logique qu'en \&quot;bricolant\&quot; le principe, tu puisse remplacer \&quot;LeTexteÀRajouter\&quot; par $LaVariable, comme $Member (pour ton exemple), et (pour le début de mon post) tu puisse remplacer \&quot;NomDeTonFichier.txt\&quot; par \&quot; \&quot;$listgroup\&quot;.txt \&quot; (si, effectivement, listgroup doit contenir un nom, dans ton script).


Après, comme je te l'ai dit, je début et j'ai l'habitude de bricoler avec une logique de Pseudo-Code (notamment en Batch qui est 100x plus simple à utiliser, mais 100x moins efficace ^^' !!!!) .

Je te mets les 2 liens où j'ai trouvé les infos, je suis tombé sur ta question en cherchant un truc similaire x)

www.labo-microsoft.org/scripts/23993/
www.macintom.com/wp/2012/07/03/powershel...ns-un-fichier-texte/

J'espère que ça pourra t'aider (:S) et je te souhaite de passer une bonne journée !! :D

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 1 mois #21509 par Philippe
bonjour bvivi57

@Lokhtor : je crois que tu a fait un mauvais copié/collé !! ;)

avant de de donné une réponse peut tu me dire si tu utilise un serveur ad sous 2008R2 ou plus récent !
idem pour ton poste a tu Windows 7 sp1 ou plus récent !

si les deux réponse sont egale ou superrieur au valeur demandé ou au moins le serveur AD alors tu pourra utilisé les commandes AD de powershell plus simple a utilisé !! B)
Microsoft fourni un module AD sur leur site , te pourra le téléchargé et surtout trouvé les instruction d'installation à effectué pour utilisé ce module
tu trouvera aussi sur ce site un petit guide en anglais pour l'installation du module AD sur différentes version de Windows

et enfin si tu peut utilisé le module AD tu pourra utilisé ceci :) :
[code:1]Get-ADGroup -Filter \&quot;name -like '*'\&quot; | foreach {
$nomgroupe = $_.name
[string[]]$listemembres = Get-ADGroupMember $nomgroupe | foreach {$_.name}
if ($listemembres -eq $null) {$nombre = 0} else {$nombre = $listemembres.count}
\&quot;\&quot; | select @{n=\&quot;Groupe\&quot;;e={$nomgroupe}}, @{n=\&quot;Nombre\&quot;;e={$nombre}}
}
[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.045 secondes
Propulsé par Kunena