"dav8669" a écrit dans le
message de
news:
| Bonjour,
Bonjour,
| C'est encore moi, je suis presque au bout.
Ouf ;-)
| Je cherche à récupérer la propriété
memberof, à la stocker et à la
| réinjecter après.
| Je peux l'afficher avec $i.Properties.memberof
| MemberOf est de type DistinguishedName.
| Supposons que je stocke mon résultat dans une variable
| ex $membre=$i.Properties.memberof
| Je souhaite après la réutiliser pour l'injecter par exemple
| $recup.put('memberof',$membre)
[...]
Impossible de procéder comme cela car l'attribut MemberOf est
géré par
le système. Il faut, pour réaliser cette opération,
modifier les membres
du groupe avec les méthodes Add() et/ou Remove(). Cela aura pour effet
de mettre à jour automatiquement l'attribut MemberOf de l'utilisateur.
Par Exemple :
$i.properties.memberof | % {
$grp=[ADSI]"LDAP://$($_)" # bind
$grp.member.add($($recup.properties.distinguishedname))
$grp.setinfo()
}
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
"dav8669" a écrit dans le
message de
news:
| Bonjour,
Bonjour,
| C'est encore moi, je suis presque au bout.
Ouf ;-)
| Je cherche à récupérer la propriété
memberof, à la stocker et à la
| réinjecter après.
| Je peux l'afficher avec $i.Properties.memberof
| MemberOf est de type DistinguishedName.
| Supposons que je stocke mon résultat dans une variable
| ex $membre=$i.Properties.memberof
| Je souhaite après la réutiliser pour l'injecter par exemple
| $recup.put('memberof',$membre)
[...]
Impossible de procéder comme cela car l'attribut MemberOf est
géré par
le système. Il faut, pour réaliser cette opération,
modifier les membres
du groupe avec les méthodes Add() et/ou Remove(). Cela aura pour effet
de mettre à jour automatiquement l'attribut MemberOf de l'utilisateur.
Par Exemple :
$i.properties.memberof | % {
$grp=[ADSI]"LDAP://$($_)" # bind
$grp.member.add($($recup.properties.distinguishedname))
$grp.setinfo()
}
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
"dav8669" a écrit dans le
message de
news:
| Bonjour,
Bonjour,
| C'est encore moi, je suis presque au bout.
Ouf ;-)
| Je cherche à récupérer la propriété
memberof, à la stocker et à la
| réinjecter après.
| Je peux l'afficher avec $i.Properties.memberof
| MemberOf est de type DistinguishedName.
| Supposons que je stocke mon résultat dans une variable
| ex $membre=$i.Properties.memberof
| Je souhaite après la réutiliser pour l'injecter par exemple
| $recup.put('memberof',$membre)
[...]
Impossible de procéder comme cela car l'attribut MemberOf est
géré par
le système. Il faut, pour réaliser cette opération,
modifier les membres
du groupe avec les méthodes Add() et/ou Remove(). Cela aura pour effet
de mettre à jour automatiquement l'attribut MemberOf de l'utilisateur.
Par Exemple :
$i.properties.memberof | % {
$grp=[ADSI]"LDAP://$($_)" # bind
$grp.member.add($($recup.properties.distinguishedname))
$grp.setinfo()
}
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Je n'ai pas tout suivi,c'est un peu technique pour moi.
Je cherche à récupérer l'attribut memberof pour chaque membre d'un groupeA et
après l'injecter pour chaque membre d'un autre groupeB.
Je ne vois pas trop à quoi correspond le %
Je n'ai pas tout suivi,c'est un peu technique pour moi.
Je cherche à récupérer l'attribut memberof pour chaque membre d'un groupeA et
après l'injecter pour chaque membre d'un autre groupeB.
Je ne vois pas trop à quoi correspond le %
Je n'ai pas tout suivi,c'est un peu technique pour moi.
Je cherche à récupérer l'attribut memberof pour chaque membre d'un groupeA et
après l'injecter pour chaque membre d'un autre groupeB.
Je ne vois pas trop à quoi correspond le %
"dav8669" wrote:Je n'ai pas tout suivi,c'est un peu technique pour moi.
Je cherche à récupérer l'attribut memberof pour chaque
membre d'un groupeA et
après l'injecter pour chaque membre d'un autre groupeB.
Je ne vois pas trop à quoi correspond le %
[...]
L'attribut memberof d'un utilisateur est géré par le
système. Cet attribut
doit être considéré comme étant en lecture seule.
Pour modifier le contenu de
l'attribut memberof, il faut ajouter l'utilisateur à des groupes. Le
système
mettra ensuite automatiquement à jour cet attribut. Le script PowerShell
ci-dessous détermine tout d'abord les groupes dont l'utilisateur $i est
membre (attribut memberof) puis ajoute l'utilisateur $recup à ces
mêmes
groupes. Au final, les utilisateurs $i et $recup seront membres des mêmes
groupes.
$i.properties.memberof | ForEach-Object {
$grp=[ADSI]"LDAP://$($_)" # bind
$grp.member.add($($recup.properties.distinguishedname))
$grp.setinfo()
}
Note : % est l'alias builtin de ForEach-Object
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
"dav8669" wrote:
Je n'ai pas tout suivi,c'est un peu technique pour moi.
Je cherche à récupérer l'attribut memberof pour chaque
membre d'un groupeA et
après l'injecter pour chaque membre d'un autre groupeB.
Je ne vois pas trop à quoi correspond le %
[...]
L'attribut memberof d'un utilisateur est géré par le
système. Cet attribut
doit être considéré comme étant en lecture seule.
Pour modifier le contenu de
l'attribut memberof, il faut ajouter l'utilisateur à des groupes. Le
système
mettra ensuite automatiquement à jour cet attribut. Le script PowerShell
ci-dessous détermine tout d'abord les groupes dont l'utilisateur $i est
membre (attribut memberof) puis ajoute l'utilisateur $recup à ces
mêmes
groupes. Au final, les utilisateurs $i et $recup seront membres des mêmes
groupes.
$i.properties.memberof | ForEach-Object {
$grp=[ADSI]"LDAP://$($_)" # bind
$grp.member.add($($recup.properties.distinguishedname))
$grp.setinfo()
}
Note : % est l'alias builtin de ForEach-Object
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
"dav8669" wrote:Je n'ai pas tout suivi,c'est un peu technique pour moi.
Je cherche à récupérer l'attribut memberof pour chaque
membre d'un groupeA et
après l'injecter pour chaque membre d'un autre groupeB.
Je ne vois pas trop à quoi correspond le %
[...]
L'attribut memberof d'un utilisateur est géré par le
système. Cet attribut
doit être considéré comme étant en lecture seule.
Pour modifier le contenu de
l'attribut memberof, il faut ajouter l'utilisateur à des groupes. Le
système
mettra ensuite automatiquement à jour cet attribut. Le script PowerShell
ci-dessous détermine tout d'abord les groupes dont l'utilisateur $i est
membre (attribut memberof) puis ajoute l'utilisateur $recup à ces
mêmes
groupes. Au final, les utilisateurs $i et $recup seront membres des mêmes
groupes.
$i.properties.memberof | ForEach-Object {
$grp=[ADSI]"LDAP://$($_)" # bind
$grp.member.add($($recup.properties.distinguishedname))
$grp.setinfo()
}
Note : % est l'alias builtin de ForEach-Object
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
"dav8669" a écrit dans le
message de
news:
| On va faire sans la boucle.
| #Je récupère mon premier utilisateur
| $utilisateur1=[ADSI]"LDAP://*/cn=essai user1,ou=groupe1,dc=*,dc=*"
| #Je récupère son memberof
| $utilisateur1.Properties.memberof
| #Je récupère mon deuxieme utilisateur
| $utilisateur2=[ADSI]"LDAP://*/cn=essai user2,ou=groupe2,dc=*,dc=*"
| Et là comment je peux injecter ce que j'ai récupérer
pour
| l'utilisateur1??? Parce que toi dans ton exemple tu avais $i pour
| utilisateur1, $recup pour utilisateur1 et je vois pas trop ce que tu
| avais dans ton $grp
L'énumération (la boucle) ForEach-Object sur l'attribut memberof
est
indispensable car l'utilisateur $utilisateur1 peut être membre de
plusieurs groupes. Ci-dessous un autre exemple avec commentaires
permettant d'ajouter $user2 dans les mêmes groupes que $user1
$user1=[ADSI]... # le DN complet de user1
$user2=[ADSI]... # le DN complet de user2
# récupération des groupes dont $user1 est membre
# pour cela on utilise l'attribut memberof qui contient les DN des
groupes
# cet attribut est en lecture seule car géré par le
système
$groups=$user1.properties.memberof
# ajout de $user2 dans les mêmes groupes que $user1
# l'énumération est nécessaire car $groups peut contenir
plusieurs
groupes
# les groupes vont transiter via le pipe "|" et seront
récupérés un par
un
# dans la variable par défaut nommée $_
$groups | ForEach-Object {
# un groupe est disponible dans la variable $_
# une liaision (bind) est nécessaire pour ajouter $user2 dans le
groupe
$grp=[ADSI]"LDAP://$($_)" # bind
# la variable $grp contient l'objet groupe (méthodes et
propriétés)
# il est donc maintenant possible d'ajouter $user2 dans le groupe
# on utilise ici la méthode "add" de l'objet groupe
$grp.member.add($($user2.properties.distinguishedname))
# l'opération précédente a été
réalisée dans le cache
# il est nécessaire de mettre à jour l'annuaire Active Directory
$grp.setinfo()
# traitement du groupe suivant
# le groupe suivant est automatiquement extrait du pipe
# si aucun groupe n'est disponible alors l'énumération
s'arrête
}
# traitement terminé
# l'attribut memberof de $user2 est automatiquement mis à jour
# affichage des groupes dont $user2 est maintenant membre
$user2.properties.memberof
Est-ce plus clair ?
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
"dav8669" a écrit dans le
message de
news:
| On va faire sans la boucle.
| #Je récupère mon premier utilisateur
| $utilisateur1=[ADSI]"LDAP://*/cn=essai user1,ou=groupe1,dc=*,dc=*"
| #Je récupère son memberof
| $utilisateur1.Properties.memberof
| #Je récupère mon deuxieme utilisateur
| $utilisateur2=[ADSI]"LDAP://*/cn=essai user2,ou=groupe2,dc=*,dc=*"
| Et là comment je peux injecter ce que j'ai récupérer
pour
| l'utilisateur1??? Parce que toi dans ton exemple tu avais $i pour
| utilisateur1, $recup pour utilisateur1 et je vois pas trop ce que tu
| avais dans ton $grp
L'énumération (la boucle) ForEach-Object sur l'attribut memberof
est
indispensable car l'utilisateur $utilisateur1 peut être membre de
plusieurs groupes. Ci-dessous un autre exemple avec commentaires
permettant d'ajouter $user2 dans les mêmes groupes que $user1
$user1=[ADSI]... # le DN complet de user1
$user2=[ADSI]... # le DN complet de user2
# récupération des groupes dont $user1 est membre
# pour cela on utilise l'attribut memberof qui contient les DN des
groupes
# cet attribut est en lecture seule car géré par le
système
$groups=$user1.properties.memberof
# ajout de $user2 dans les mêmes groupes que $user1
# l'énumération est nécessaire car $groups peut contenir
plusieurs
groupes
# les groupes vont transiter via le pipe "|" et seront
récupérés un par
un
# dans la variable par défaut nommée $_
$groups | ForEach-Object {
# un groupe est disponible dans la variable $_
# une liaision (bind) est nécessaire pour ajouter $user2 dans le
groupe
$grp=[ADSI]"LDAP://$($_)" # bind
# la variable $grp contient l'objet groupe (méthodes et
propriétés)
# il est donc maintenant possible d'ajouter $user2 dans le groupe
# on utilise ici la méthode "add" de l'objet groupe
$grp.member.add($($user2.properties.distinguishedname))
# l'opération précédente a été
réalisée dans le cache
# il est nécessaire de mettre à jour l'annuaire Active Directory
$grp.setinfo()
# traitement du groupe suivant
# le groupe suivant est automatiquement extrait du pipe
# si aucun groupe n'est disponible alors l'énumération
s'arrête
}
# traitement terminé
# l'attribut memberof de $user2 est automatiquement mis à jour
# affichage des groupes dont $user2 est maintenant membre
$user2.properties.memberof
Est-ce plus clair ?
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
"dav8669" a écrit dans le
message de
news:
| On va faire sans la boucle.
| #Je récupère mon premier utilisateur
| $utilisateur1=[ADSI]"LDAP://*/cn=essai user1,ou=groupe1,dc=*,dc=*"
| #Je récupère son memberof
| $utilisateur1.Properties.memberof
| #Je récupère mon deuxieme utilisateur
| $utilisateur2=[ADSI]"LDAP://*/cn=essai user2,ou=groupe2,dc=*,dc=*"
| Et là comment je peux injecter ce que j'ai récupérer
pour
| l'utilisateur1??? Parce que toi dans ton exemple tu avais $i pour
| utilisateur1, $recup pour utilisateur1 et je vois pas trop ce que tu
| avais dans ton $grp
L'énumération (la boucle) ForEach-Object sur l'attribut memberof
est
indispensable car l'utilisateur $utilisateur1 peut être membre de
plusieurs groupes. Ci-dessous un autre exemple avec commentaires
permettant d'ajouter $user2 dans les mêmes groupes que $user1
$user1=[ADSI]... # le DN complet de user1
$user2=[ADSI]... # le DN complet de user2
# récupération des groupes dont $user1 est membre
# pour cela on utilise l'attribut memberof qui contient les DN des
groupes
# cet attribut est en lecture seule car géré par le
système
$groups=$user1.properties.memberof
# ajout de $user2 dans les mêmes groupes que $user1
# l'énumération est nécessaire car $groups peut contenir
plusieurs
groupes
# les groupes vont transiter via le pipe "|" et seront
récupérés un par
un
# dans la variable par défaut nommée $_
$groups | ForEach-Object {
# un groupe est disponible dans la variable $_
# une liaision (bind) est nécessaire pour ajouter $user2 dans le
groupe
$grp=[ADSI]"LDAP://$($_)" # bind
# la variable $grp contient l'objet groupe (méthodes et
propriétés)
# il est donc maintenant possible d'ajouter $user2 dans le groupe
# on utilise ici la méthode "add" de l'objet groupe
$grp.member.add($($user2.properties.distinguishedname))
# l'opération précédente a été
réalisée dans le cache
# il est nécessaire de mettre à jour l'annuaire Active Directory
$grp.setinfo()
# traitement du groupe suivant
# le groupe suivant est automatiquement extrait du pipe
# si aucun groupe n'est disponible alors l'énumération
s'arrête
}
# traitement terminé
# l'attribut memberof de $user2 est automatiquement mis à jour
# affichage des groupes dont $user2 est maintenant membre
$user2.properties.memberof
Est-ce plus clair ?
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
"Gilles LAURENT [MVP]" a écrit dans le
message de
news:%
Décidément !! Ci-dessous la version finale (j'espère)
$user1=[ADSI]... # le DN complet de user1
$user2=[ADSI]... # le DN complet de user2
$user1.memberof | ForEach-Object {
$grp=[ADSI]"LDAP://$($_)" # bind
$grp.member.add($($user2.distinguishedname))
$grp.setinfo()
}
$($user2.memberof)
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
"Gilles LAURENT [MVP]" a écrit dans le
message de
news:%
Décidément !! Ci-dessous la version finale (j'espère)
$user1=[ADSI]... # le DN complet de user1
$user2=[ADSI]... # le DN complet de user2
$user1.memberof | ForEach-Object {
$grp=[ADSI]"LDAP://$($_)" # bind
$grp.member.add($($user2.distinguishedname))
$grp.setinfo()
}
$($user2.memberof)
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
"Gilles LAURENT [MVP]" a écrit dans le
message de
news:%
Décidément !! Ci-dessous la version finale (j'espère)
$user1=[ADSI]... # le DN complet de user1
$user2=[ADSI]... # le DN complet de user2
$user1.memberof | ForEach-Object {
$grp=[ADSI]"LDAP://$($_)" # bind
$grp.member.add($($user2.distinguishedname))
$grp.setinfo()
}
$($user2.memberof)
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr