OVH Cloud OVH Cloud

Parser les users contenus ds les groupes d'une OU

3 réponses
Avatar
Dom
Bonsoir,

Je souhaiterai parser les utilisateurs contenus dans ts les groupes d'une OU
donnée pour ensuite les ajouter à un groupe autre.
Comment faire celà ?
Merci à tous de votre savoir

Dom

3 réponses

Avatar
Stéphane [MS]
Bonjour,

Sur Script Center (à adapter) :
List Group Memberships for All the Users in an OU

On Error Resume Next

Const E_ADS_PROPERTY_NOT_FOUND = &h8000500D

Set objOU = GetObject _
("LDAP://cn=Users,dc=NA,dcúbrikam,dc=com")

ObjOU.Filter= Array("user")

For Each objUser in objOU
WScript.Echo objUser.cn & " is a member of: "
WScript.Echo vbTab & "Primary Group ID: " & _
objUser.Get("primaryGroupID")

arrMemberOf = objUser.GetEx("memberOf")

If Err.Number <> E_ADS_PROPERTY_NOT_FOUND Then
For Each Group in arrMemberOf
WScript.Echo vbTab & Group
Next
Else
WScript.Echo vbTab & "memberOf attribute is not set"
Err.Clear
End If
Wscript.Echo
Next

Cdlt
Stéphane

"Dom" a écrit dans le message de news:

Bonsoir,

Je souhaiterai parser les utilisateurs contenus dans ts les groupes d'une
OU donnée pour ensuite les ajouter à un groupe autre.
Comment faire celà ?
Merci à tous de votre savoir

Dom



Avatar
Dom
Bonsoir,

Fort de l'info de Stéphane, j'ai ébauché un code sensé récupérer les
utilisateurs de l'OU Users (OU windows par défaut) et les injecter dans le
groupe UtilisateursTest, groupe positionné à la racine de mon domaine
(bretagne.local). Le DC est dom1.
Voici mon code:

On Error Resume Next

Const E_ADS_PROPERTY_NOT_FOUND = &h8000500D
Const ADS_PROPERTY_APPEND = 3
Dim nom

Set objOU = GetObject _
("LDAP://cn=Users,dc=bretagne,dc=local")

ObjOU.Filter= Array("user")

For Each objUser in objOU
WScript.Echo objUser.cn
nom = "(" & """" & objUser.cn & ",dc=dom1,dc=bretagne,dc=local" & """"
& ")"
WScript.Echo nom
Set objGroup = GetObject _
("LDAP://cn=UtilisateursTest,dc=dom1,dc=bretagne,dc=local")
objGroup.PutEx ADS_PROPERTY_APPEND, _
"member", Array(nom)
objGroup.SetInfo
Next

Le code ne me retourne pas d'erreurs mais le groupe de destination ne
s'incrémente pas des utilisateurs désirés ...
C'est où que j'ai faux ?

Si une bonne ame pouvait m'aider à ouvrir les yeux ...
Merci

Dom
Avatar
Fred
"Dom" a écrit dans le message de
news:e0TRHI%
Bonsoir,

Fort de l'info de Stéphane, j'ai ébauché un code sensé récupérer les
utilisateurs de l'OU Users (OU windows par défaut) et les injecter
dans le

groupe UtilisateursTest, groupe positionné à la racine de mon domaine
(bretagne.local). Le DC est dom1.
Voici mon code:

On Error Resume Next

Const E_ADS_PROPERTY_NOT_FOUND = &h8000500D
Const ADS_PROPERTY_APPEND = 3
Dim nom

Set objOU = GetObject _
("LDAP://cn=Users,dc=bretagne,dc=local")

ObjOU.Filter= Array("user")

For Each objUser in objOU
WScript.Echo objUser.cn
nom = "(" & """" & objUser.cn & ",dc=dom1,dc=bretagne,dc=local" &
""""

& ")"
WScript.Echo nom
Set objGroup = GetObject _
("LDAP://cn=UtilisateursTest,dc=dom1,dc=bretagne,dc=local")
objGroup.PutEx ADS_PROPERTY_APPEND, _
"member", Array(nom)
objGroup.SetInfo
Next

Le code ne me retourne pas d'erreurs mais le groupe de destination ne
s'incrémente pas des utilisateurs désirés ...
C'est où que j'ai faux ?


Je n'ai pas testé ton script mais j'ai fait quelque chose de similaire
avec une autre méthode.
Tu peux essayer d'utiliser :
objGroup.Add("LDAP://cn= " & objUser.cn &
",dc=dom1,dc=bretagne,dc=local")

D'autre part tu peux déplacer le Set objGroup en dehors de la boucle.


--
Fred
http://www.cerbermail.com/?3kA6ftaCvT