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

Parser les users contenus ds les groupes d'une OU

Le
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
Lire les 3 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Stéphane [MS]
Le #494469
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"
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



Dom
Le #494234
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
Fred
Le #494232
"Dom" 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

Publicité
Suivre les réponses
Poster une réponse
Anonyme