Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

lister les groupes et ses membres

10 réponses
Avatar
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

10 réponses

Avatar
François Dufour [Exakis]
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 wrote:
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


Avatar
Trax
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 wrote:
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







Avatar
Gilles LAURENT
"Trax" a écrit dans le message de
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
Avatar
F. Dunoyer [MVP]
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

Avatar
Trax
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" a écrit dans le message de
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





Avatar
Gilles LAURENT
"Trax" a écrit dans le message de
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
Avatar
Trax
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" a écrit dans le message de
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





Avatar
Trax
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" a écrit dans le message de
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





Avatar
Gilles LAURENT
"Trax" a écrit dans le message de
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
Avatar
Trax
impeccable !

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

Merci :)


"Trax" a écrit dans le message de
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