Question Tester un utilisateur est membre d'un groupe

Plus d'informations
il y a 17 ans 2 mois #3716 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

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

Plus d'informations
il y a 17 ans 2 mois #3719 par Jacques Barathon
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&gt; $impairs = 1,3,5,7,9
PS&gt; $impairs -contains 4
False
PS&gt; $impairs -contains 3
True
[/code:1]
Janel

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

Plus d'informations
il y a 17 ans 2 mois #3720 par Jacques Barathon
En pseudo pseudo-code, ça donnerait quelque chose comme ça:

[code:1]
# récupérer les infos du 1er utilisateur
$userA = [ADSI]\&quot;blablabla\&quot;
$groupesA = $userA.MemberOf

# récupérer les infos du 2e utilisateur
$userB = [ADSI]\&quot;blablabla\&quot;
$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.

Plus d'informations
il y a 17 ans 2 mois #3733 par david
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.

Plus d'informations
il y a 17 ans 2 mois #3738 par Jacques Barathon
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]\&quot;CN=toto,OU=Users,...\&quot;
$groupsA = $userA.MemberOf
$userB = [ADSI]\&quot;CN=titi,OU=Users,...\&quot;
$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
Propulsé par Kunena