GNT sans publicité, site mobile, fonctionnalitées exclusives...

Tester si un utilisateur appartient à un groupe en Powershell

Le
dav8669
Bonjour,
J'ai plusieurs groupes et je voudrais tester pour chaque groupe que l'utilisateur appartient au groupe.
Merci
Lire les 10 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles LAURENT [MVP]
Le #18367971
"dav8669" news:
| Bonjour,

Bonjour,

| J'ai plusieurs groupes et je voudrais tester pour chaque groupe que
| l'utilisateur appartient au groupe.

Le script ci-dessous (Powershell V2 CTP) recherche l'ensemble des
groupes du domaine puis affiche sous forme de tableau formaté (Group,
Member) l'appartenance ou non de l'utilisateur "$user" aux groupes.

$view = `
@{Label="Group";`
Expression={$_.properties.name}}, `
@{Label="Member";`
Expression={$_.properties.member -contains $user.distinguishedname}}

$user=[ADSI]"LDAP://cn=user,ou=test,dc=domain,dc=local"
$searcher=[adsisearcher]"(objectclass=group)"
$searcher.searchroot="LDAP://dc=domain,dc=local"
$searcher.findall() | Format-Table $view -a

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
dav8669 Hors ligne
Le #18375181
Gilles LAURENT [MVP] a écrit le 12/01/2009 à 12h13 :
"dav8669" a écrit dans le
message de
news:
| Bonjour,

Bonjour,

| J'ai plusieurs groupes et je voudrais tester pour chaque groupe que
| l'utilisateur appartient au groupe.

Le script ci-dessous (Powershell V2 CTP) recherche l'ensemble des
groupes du domaine puis affiche sous forme de tableau formaté (Group,
Member) l'appartenance ou non de l'utilisateur "$user" aux groupes.

$view = `
@{Label="Group";`
Expression={$_.properties.name}}, `
@{Label="Member";`
Expression={$_.properties.member -contains $user.distinguishedname}}

$user=[ADSI]"LDAP://cn=user,ou=test,dc=domain,dc=local"
$searcher=[adsisearcher]"(objectclass=group)"
$searcher.searchroot="LDAP://dc=domain,dc=local"
$searcher.findall() | Format-Table $view -a

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr


Bonjour,
Merci pour ta solution avec la vue mais elle est pas adaptée à mes besoins.
En effet, en fonction si l'utilisateur appartient à un groupe ou non, je fais un traitement.
Donc comment récupérer la valeur souhaitée dans la vue?
De plus je connais les groupes que je veux tester pour l'utilisateur donc il y a peut être pas besoin de parcourir tout le domaine?
Merci
Gilles LAURENT [MVP]
Le #18375601
"dav8669" news:
| Bonjour,

Bonjour,

| Merci pour ta solution avec la vue mais elle est pas adaptée à mes
| besoins. En effet, en fonction si l'utilisateur appartient à un
| groupe ou non, je fais un traitement.
| Donc comment récupérer la valeur souhaitée dans la vue?
| De plus je connais les groupes que je veux tester pour l'utilisateur
| donc il y a peut être pas besoin de parcourir tout le domaine?

$user=[adsi]"LDAP://cn=user,ou=test,dc=domain,dc=local" # bind
$group=[adsi]"LDAP://cn=group,ou=test,dc=domain,dc=local" #bind
$ismember=$group.member -contains $user.distinguishedname
if ($ismember) {
"traitement"
}

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
dav8669 Hors ligne
Le #18391851
Gilles LAURENT [MVP] a écrit le 13/01/2009 à 11h00 :
"dav8669" a écrit dans le
message de
news:
| Bonjour,

Bonjour,

| Merci pour ta solution avec la vue mais elle est pas adaptée à
mes
| besoins. En effet, en fonction si l'utilisateur appartient à un
| groupe ou non, je fais un traitement.
| Donc comment récupérer la valeur souhaitée dans la vue?
| De plus je connais les groupes que je veux tester pour l'utilisateur
| donc il y a peut être pas besoin de parcourir tout le domaine?

$user=[adsi]"LDAP://cn=user,ou=test,dc=domain,dc=local" # bind
$group=[adsi]"LDAP://cn=group,ou=test,dc=domain,dc=local" #bind
$ismember=$group.member -contains $user.distinguishedname
if ($ismember) {
"traitement"
}

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr


Bonjour
$user=[ADSI]"LDAP://1*/cn=*ou=*,dc=*,dc=*"
$user
$user.memberof | ForEach-Object {
$ismember =$group.member -contains $user.distinguishedname
$ismember
Mon problème consiste à afficher pour chaque objet, le nom du groupe.
Merci
Gilles LAURENT [MVP]
Le #18392931
"dav8669" wrote:

Bonjour



Bonjour,

$user=[ADSI]"LDAP://1*/cn=*ou=*,dc=*,dc=*"
$user
$user.memberof | ForEach-Object {
$ismember =$group.member -contains $user.distinguishedname
$ismember
Mon problème consiste à afficher pour chaque objet, le nom du groupe.



Le nom des groupes (et non le dn) dont l'utilisateur est membre ?

$user=[adsi]"LDAP://cn=user,ou=test,dc=domain,dc=local"
$user.memberof | % {
$_.split('=,')[1]
}

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Publicité
Suivre les réponses
Poster une réponse
Anonyme