Question
Tester un utilisateur est membre d'un groupe
- david
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 59
- Remerciements reçus 0
il y a 17 ans 2 mois #3716
par david
Tester un utilisateur est membre d'un groupe a été créé par david
Bonjour,
Je récupère des groupes : memberof et des utilisateurs.
Je voudrais tester si pour chaque groupe récupéré, un autre utilisateur en est membre.
Merci<br><br>Message édité par: Arnaud, à: 15/01/09 21:46
Je récupère des groupes : memberof et des utilisateurs.
Je voudrais tester si pour chaque groupe récupéré, un autre utilisateur en est membre.
Merci<br><br>Message édité par: Arnaud, à: 15/01/09 21:46
Connexion ou Créer un compte pour participer à la conversation.
- Jacques Barathon
- Hors Ligne
- Administrateur
-
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 17 ans 2 mois #3719
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Tester un utilisateur est membre d'un groupe
Tu devrais pouvoir utiliser l'opérateur -contains pour vérifier si la liste de groupes dont l'autre utilisateur est membre contient le groupe en question.
Je n'ai pas accès à un AD en ce moment, mais la syntaxe de base donne ça:
[code:1]
PS> $impairs = 1,3,5,7,9
PS> $impairs -contains 4
False
PS> $impairs -contains 3
True
[/code:1]
Janel
Je n'ai pas accès à un AD en ce moment, mais la syntaxe de base donne ça:
[code:1]
PS> $impairs = 1,3,5,7,9
PS> $impairs -contains 4
False
PS> $impairs -contains 3
True
[/code:1]
Janel
Connexion ou Créer un compte pour participer à la conversation.
- Jacques Barathon
- Hors Ligne
- Administrateur
-
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 17 ans 2 mois #3720
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Tester un utilisateur est membre d'un groupe
En pseudo pseudo-code, ça donnerait quelque chose comme ça:
[code:1]
# récupérer les infos du 1er utilisateur
$userA = [ADSI]\"blablabla\"
$groupesA = $userA.MemberOf
# récupérer les infos du 2e utilisateur
$userB = [ADSI]\"blablabla\"
$groupesB = $userB.MemberOf
# parcourir tous les groupes de $userA et retourner ceux dont $userB est membre également
foreach ($groupe in $groupesA)
{
if ($groupesB -contains $groupe) {$groupe}
}
[/code:1]
En gros... Il faudrait vérifier la structure de la liste retournée par MemberOf, ainsi que les propriétés d'un groupe en particulier, et peut-être faire la manip -contains sur une propriété en particulier (le nom du groupe par exemple).
Janel
[code:1]
# récupérer les infos du 1er utilisateur
$userA = [ADSI]\"blablabla\"
$groupesA = $userA.MemberOf
# récupérer les infos du 2e utilisateur
$userB = [ADSI]\"blablabla\"
$groupesB = $userB.MemberOf
# parcourir tous les groupes de $userA et retourner ceux dont $userB est membre également
foreach ($groupe in $groupesA)
{
if ($groupesB -contains $groupe) {$groupe}
}
[/code:1]
En gros... Il faudrait vérifier la structure de la liste retournée par MemberOf, ainsi que les propriétés d'un groupe en particulier, et peut-être faire la manip -contains sur une propriété en particulier (le nom du groupe par exemple).
Janel
Connexion ou Créer un compte pour participer à la conversation.
- david
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 59
- Remerciements reçus 0
il y a 17 ans 2 mois #3733
par david
Réponse de david sur le sujet Re:Tester un utilisateur est membre d'un groupe
Oui c'est bien là que la difficulté se trouve avec la structure retournée par memberof
Connexion ou Créer un compte pour participer à la conversation.
- Jacques Barathon
- Hors Ligne
- Administrateur
-
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 17 ans 2 mois #3738
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Tester un utilisateur est membre d'un groupe
Ma foi, je viens de faire un test et la structure est très simple, c'est un tableau de chaînes tout bête. Tu peux donc faire la manip que j'ai décrite.
[code:1]
# récupérer les infos des utilisateurs toto et titi :
$userA = [ADSI]\"CN=toto,OU=Users,...\"
$groupsA = $userA.MemberOf
$userB = [ADSI]\"CN=titi,OU=Users,...\"
$groupsB = $userB.MemberOf
# retourner les groupes dont titi et toto sont tous les deux membres :
$groupsB | where {$groupsA -contains $_}
[/code:1]
Janel
[code:1]
# récupérer les infos des utilisateurs toto et titi :
$userA = [ADSI]\"CN=toto,OU=Users,...\"
$groupsA = $userA.MemberOf
$userB = [ADSI]\"CN=titi,OU=Users,...\"
$groupsB = $userB.MemberOf
# retourner les groupes dont titi et toto sont tous les deux membres :
$groupsB | where {$groupsA -contains $_}
[/code:1]
Janel
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.083 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Tester un utilisateur est membre d'un groupe