lister les groupes et ses membres

Le
Trax
Bonjour,

Je cherche un script qui listerai tous les groupes d'un domaine ainsi que
ces membres (et sous membres dans le cas d'imbrications)
j'ai trouvé pas mal de script différents pour lister les groupes, ou les
utilisateurs d'un groupe, mais avec tous les différents languages et du coup
je m'y perds :s

en vbscript ca serait :D (pas encore de ps installé)

Merci,
T
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
François Dufour [Exakis]
Le #666229
Bonjour,

En ce qui concerne le vbscript tu trouveras surement ton bonheur ici:

http://www.microsoft.com/technet/scriptcenter/scripts/default.mspx?mfr=tr ue

Après pour lister les membres et les sous-membres il suffit de créer
une fonction qui liste les membres dans laquelle tu passes ton
conteneur en paramètre, qui teste le type de chaque membre (groupe,
user, ...) et qui s'appelle elle-même dans le cas d'un membre de type
groupe.



On 9 mai, 14:59, Trax
Bonjour,

Je cherche un script qui listerai tous les groupes d'un domaine ainsi que
ces membres (et sous membres dans le cas d'imbrications)...
j'ai trouvé pas mal de script différents pour lister les groupes, ou les
utilisateurs d'un groupe, mais avec tous les différents languages et du coup
je m'y perds :s

en vbscript ca serait :D (pas encore de ps installé...)

Merci,
T


Trax
Le #666228
Merci,

j'ai tout de même un souci dans mon script...
il ne me retourne pas la liste des membres... sans indiquer d'erreur :s

======= On Error Resume Next

Const ADS_SCOPE_SUBTREE = 2

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection

objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE

objCommand.CommandText = _
"SELECT cn FROM 'LDAP://dc=scripting,dc=loc' WHERE " _
& "objectCategory='group'"
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst

i = 0

Do Until objRecordSet.EOF
Wscript.Echo i & " : " & objRecordSet.Fields("cn").Value
Set groupname = objRecordSet.Fields("cn").Value
Set objGroup = GetObject _
("LDAP://cn=" & groupname & ", dc=scripting,dc=loc")
For each objMember in objGroup.Members
Wscript.Echo objMember.Name
Next

i=i+1
objRecordSet.MoveNext
Loop
=======

Bonjour,

En ce qui concerne le vbscript tu trouveras surement ton bonheur ici:

http://www.microsoft.com/technet/scriptcenter/scripts/default.mspx?mfr=true

Après pour lister les membres et les sous-membres il suffit de créer
une fonction qui liste les membres dans laquelle tu passes ton
conteneur en paramètre, qui teste le type de chaque membre (groupe,
user, ...) et qui s'appelle elle-même dans le cas d'un membre de type
groupe.



On 9 mai, 14:59, Trax
Bonjour,

Je cherche un script qui listerai tous les groupes d'un domaine ainsi que
ces membres (et sous membres dans le cas d'imbrications)...
j'ai trouvé pas mal de script différents pour lister les groupes, ou les
utilisateurs d'un groupe, mais avec tous les différents languages et du coup
je m'y perds :s

en vbscript ca serait :D (pas encore de ps installé...)

Merci,
T







Gilles LAURENT
Le #665981
"Trax" news:
| Merci,

Bonjour,

| j'ai tout de même un souci dans mon script...
| il ne me retourne pas la liste des membres... sans indiquer d'erreur
| :s

Plusieurs petites corrections sont nécessaires :

1- ' On Error Resume Next
2- SELECT cn,distinguishedName FROM ...
3- groupname = objRecordSet.Fields("distinguishedName").Value
4- Set objGroup = GetObject ("LDAP://" & groupname)

--
Gilles LAURENT
http://glsft.free.fr
F. Dunoyer [MVP]
Le #665975
Bonjour,

Je cherche un script qui listerai tous les groupes d'un domaine ainsi que
ces membres (et sous membres dans le cas d'imbrications)...
j'ai trouvé pas mal de script différents pour lister les groupes, ou les
utilisateurs d'un groupe, mais avec tous les différents languages et du coup
je m'y perds :s

en vbscript ca serait :D (pas encore de ps installé...)

Merci,
T


tu peux aussi regarder dumpsec
http://fds.mvps.org/ta/qr.htm#Q47

--
François Dunoyer [MVP Windows Server / Security]
Jours après jours avec Longhorn Server
http://fds.mvps.org/LH/index.htm

Trax
Le #665974
Suite aux modifications il m'indique le message suivant lors de l'execution :
Objet requis: '[string: "CN­mins du domaine"]'

il n'y aurait pas comme un problème de langue?

Merci,
T



"Trax" news:
| Merci,

Bonjour,

| j'ai tout de même un souci dans mon script...
| il ne me retourne pas la liste des membres... sans indiquer d'erreur
| :s

Plusieurs petites corrections sont nécessaires :

1- ' On Error Resume Next
2- SELECT cn,distinguishedName FROM ...
3- groupname = objRecordSet.Fields("distinguishedName").Value
4- Set objGroup = GetObject ("LDAP://" & groupname)

--
Gilles LAURENT
http://glsft.free.fr





Gilles LAURENT
Le #665973
"Trax" news:
| Suite aux modifications il m'indique le message suivant lors de
| l'execution : Objet requis: '[string: "CN­mins du domaine"]'
|
| il n'y aurait pas comme un problème de langue?
|
| Merci,
| T

Pouvez-vous vérifier la ligne suivante :
groupname = objRecordSet.Fields("distinguishedName").Value

Attention: Pas de "Set" devant la variable groupname

--
Gilles LAURENT
http://glsft.free.fr
Trax
Le #665701
ha effectivement, je n'avais pas vu la suppression du "set"...

par contre j'ai encore une erreur : listUsersGroups.vbs(25, 2) (null):
0x80005000
il s'agit de la ligne suivante...
j'ai également essayé d'enlever le "set" mais sans succès....


"Trax" news:
| Suite aux modifications il m'indique le message suivant lors de
| l'execution : Objet requis: '[string: "CN­mins du domaine"]'
|
| il n'y aurait pas comme un problème de langue?
|
| Merci,
| T

Pouvez-vous vérifier la ligne suivante :
groupname = objRecordSet.Fields("distinguishedName").Value

Attention: Pas de "Set" devant la variable groupname

--
Gilles LAURENT
http://glsft.free.fr





Trax
Le #665700
je n'avais pas fait attention à la ligne juste au dessus du message d'erreur :

---------
0 : Admins du domaine
C:cscript listUsersGroups.vbs(25, 2) (null): 0x80005000
---------

donc il liste bien les groupes, mais ne trouve pas le contenu... hors
évidemment le groupe contient bien des membres...



"Trax" news:
| Suite aux modifications il m'indique le message suivant lors de
| l'execution : Objet requis: '[string: "CN­mins du domaine"]'
|
| il n'y aurait pas comme un problème de langue?
|
| Merci,
| T

Pouvez-vous vérifier la ligne suivante :
groupname = objRecordSet.Fields("distinguishedName").Value

Attention: Pas de "Set" devant la variable groupname

--
Gilles LAURENT
http://glsft.free.fr





Gilles LAURENT
Le #665699
"Trax" news:
| je n'avais pas fait attention à la ligne juste au dessus du message
| d'erreur :
|
| ---------
| 0 : Admins du domaine
| C:cscript listUsersGroups.vbs(25, 2) (null): 0x80005000
| ---------
|
| donc il liste bien les groupes, mais ne trouve pas le contenu... hors
| évidemment le groupe contient bien des membres...

Le script complet ci-dessous :

--- Coupez ici : listUsersGroups.vbs ---
Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection

objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = _
"SELECT cn,distinguishedname " & _
"FROM 'LDAP://dc=scripting,dc=loc' " & _
"WHERE objectCategory='group'"
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst: i = 0

Do Until objRecordSet.EOF
Wscript.Echo i & " : " & objRecordSet.Fields("cn")
groupname = objRecordSet.Fields("distinguishedName").value
Set objGroup = GetObject ("LDAP://" & groupname)
For each objMember in objGroup.Members
Wscript.Echo VBTab & objMember.Name
Next

objRecordSet.MoveNext: i = i + 1
Loop
--- Coupez ici : listUsersGroups.vbs ---

Note: J'ai bien entendu validé ce script sous Windows 2003. Si les
symptômes persistent alors n'hésitez pas à me contacter par voie de
messagerie.

--
Gilles LAURENT
http://glsft.free.fr
Trax
Le #665698
impeccable !

il manquait le "cn=" dans la 2eme requete...

Merci :)


"Trax" news:
| je n'avais pas fait attention à la ligne juste au dessus du message
| d'erreur :
|
| ---------
| 0 : Admins du domaine
| C:cscript listUsersGroups.vbs(25, 2) (null): 0x80005000
| ---------
|
| donc il liste bien les groupes, mais ne trouve pas le contenu... hors
| évidemment le groupe contient bien des membres...

Le script complet ci-dessous :

--- Coupez ici : listUsersGroups.vbs ---
Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection

objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = _
"SELECT cn,distinguishedname " & _
"FROM 'LDAP://dc=scripting,dc=loc' " & _
"WHERE objectCategory='group'"
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst: i = 0

Do Until objRecordSet.EOF
Wscript.Echo i & " : " & objRecordSet.Fields("cn")
groupname = objRecordSet.Fields("distinguishedName").value
Set objGroup = GetObject ("LDAP://" & groupname)
For each objMember in objGroup.Members
Wscript.Echo VBTab & objMember.Name
Next

objRecordSet.MoveNext: i = i + 1
Loop
--- Coupez ici : listUsersGroups.vbs ---

Note: J'ai bien entendu validé ce script sous Windows 2003. Si les
symptômes persistent alors n'hésitez pas à me contacter par voie de
messagerie.

--
Gilles LAURENT
http://glsft.free.fr





Publicité
Poster une réponse
Anonyme