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

Connexion LDAP à Active Directory ne fonctionne pas...

10 réponses
Avatar
Glenn Gagné
Bonjour,

J'essais de diverses manières depuis mon poste de me connecter à l'Active
Directory de mon domaine via une requête LDAP, mais ça ne marche pas. Je
veux créer quelques VB scripts, pour gérer des choses sur mon domaine, qui
nécessitent une connexion en LDAP.

Je ne sais pas si je m'y prend mal, mais les exemples de connexions que j'ai
essayé proviennent du site de Microsoft (en grande partie du Scripting Guy
!)

Bon ,sans parler de scripts, mais uniquement de connexion LDAP, est-ce que
par défaut un serveur Windows Server 2003 SP2 avec Active Directory ouvre
les communications LDAP sur le port 389 ?

Est-ce qu'il y a un outil EXE existant permettant de tester la connectivité
LDAP ?

Est-ce qu'il existe une façon de formuler une requête LDAP très spécifique,
avez-vous une requête bien banale qui fonctionne à coup sur (du genre
"sors-moi la liste de tous les utilisateurs du domaine")... ?

Voici commen j'ai tenté l'expérience:

Depuis mon poste client (Windows 2000 SP4):

Dans un script VBS, je tapes:

--------------------
Set objGroup = GetObject(LDAP://CN=groupe1,OU=MonOU2,DC=domaine,DC=com)

For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next
----------------------

* Si je ne fais pas d'erreur, je serais supposer voir dans une fenêtre un
après l'autre les membres (utilisateurs) de l'unité d'organisation (OU)
nommé MonOU2 faisant parti du groupe (CN) nommé groupe1 ???

Il ne m'apparait absolument rien (un echo vide une seule fois) et pourtant
ce groupe et OU existe.

Si par la suite je tapes la requête LDAP:

LDAP://DC=domaine,DC=com directement dans la barre d'adresse de Windows ou
IE et fais ENTER au clavier, j'obtiens la fenêtre de recherche du Carnet
d'adresse qui dans le champs de la zone de recherche est écrit:
DC=domaine,DC=com

Si je tapes un nom connus de l'AD, il me dit:

Impossible d'atteindre le service d'annuaire spécifié.

Le service est peut-être provisoirement indisponible ou le nom du serveur
n'est peut-être par correct.


Si j'essais d'ajouter mon domaine comme service d'annuaire dans Outlook,
j'ai le même problème...


Bref, je n'ai jamais pu atteindre AD avec LDAP... mais pourtant je vois AD
lorsque je recherche des imprimantes, lorsque je passe par les Favoris
réseau (sous la forme NTDS://domaine.com/MonOU1)

------------------------------------------


Merci de m'éclairer sur LDAP et AD.

Glenn

10 réponses

Avatar
Thierry Frache
Bonsoir Glenn,

pour l'outil, n'importe quel browser ldap peut être utilisé. Les outils de
support offrent un outil nommé LDP.EXE. Il permet de parcourir l'annuaire.

Pour l'erreur du script, vous avez oublié les " à la première ligne. Cela
fonctionne chez moi:

Set objGroup = GetObject("LDAP://CN=Users,CN=Builtin,DC=mshome,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Thierry

P.S.: La recherche via le carnet d'adresses ne s'applique qu'aux objets
disposant d'une adresse de messagerie. Pour l'interrogation, vous pouvez
effectivement utiliser le 389 ou le 3268 (catalogue global).

"Glenn Gagné" wrote in message
news:



Bonjour,

J'essais de diverses manières depuis mon poste de me connecter à l'Active
Directory de mon domaine via une requête LDAP, mais ça ne marche pas. Je
veux créer quelques VB scripts, pour gérer des choses sur mon domaine, qui
nécessitent une connexion en LDAP.

Je ne sais pas si je m'y prend mal, mais les exemples de connexions que
j'ai
essayé proviennent du site de Microsoft (en grande partie du Scripting Guy
!)

Bon ,sans parler de scripts, mais uniquement de connexion LDAP, est-ce que
par défaut un serveur Windows Server 2003 SP2 avec Active Directory ouvre
les communications LDAP sur le port 389 ?

Est-ce qu'il y a un outil EXE existant permettant de tester la
connectivité
LDAP ?

Est-ce qu'il existe une façon de formuler une requête LDAP très
spécifique,
avez-vous une requête bien banale qui fonctionne à coup sur (du genre
"sors-moi la liste de tous les utilisateurs du domaine")... ?

Voici commen j'ai tenté l'expérience:

Depuis mon poste client (Windows 2000 SP4):

Dans un script VBS, je tapes:

--------------------
Set objGroup = GetObject(LDAP://CN=groupe1,OU=MonOU2,DC=domaine,DC=com)

For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next
----------------------

* Si je ne fais pas d'erreur, je serais supposer voir dans une fenêtre un
après l'autre les membres (utilisateurs) de l'unité d'organisation (OU)
nommé MonOU2 faisant parti du groupe (CN) nommé groupe1 ???

Il ne m'apparait absolument rien (un echo vide une seule fois) et pourtant
ce groupe et OU existe.

Si par la suite je tapes la requête LDAP:

LDAP://DC=domaine,DC=com directement dans la barre d'adresse de Windows ou
IE et fais ENTER au clavier, j'obtiens la fenêtre de recherche du Carnet
d'adresse qui dans le champs de la zone de recherche est écrit:
DC=domaine,DC=com

Si je tapes un nom connus de l'AD, il me dit:

Impossible d'atteindre le service d'annuaire spécifié.

Le service est peut-être provisoirement indisponible ou le nom du serveur
n'est peut-être par correct.


Si j'essais d'ajouter mon domaine comme service d'annuaire dans Outlook,
j'ai le même problème...


Bref, je n'ai jamais pu atteindre AD avec LDAP... mais pourtant je vois AD
lorsque je recherche des imprimantes, lorsque je passe par les Favoris
réseau (sous la forme NTDS://domaine.com/MonOU1)

------------------------------------------


Merci de m'éclairer sur LDAP et AD.

Glenn




Avatar
Mathieu CHATEAU
Bonjour,

vous devriez poster sur un forum de scripting.

Adfind de joeware est "the killing tool" :
http://www.joeware.net/freetools/tools/adfind/index.htm

un exemple de script pour lister tous les ordinateurs:

Dim RootDSE, DomainNC, Connection, Command, RecordSet
' BEGIN CALLOUT A
Set RootDSE = GetObject("LDAP://rootDSE")
DomainNC = RootDSE.Get("defaultNamingContext")
' END CALLOUT A
Set Connection = CreateObject("ADODB.Connection")
Connection.Open("Provider­sDSOObject;")
Set Command = CreateObject("ADODB.Command")
Command.ActiveConnection = Connection

' BEGIN CALLOUT B
Command.CommandText = "<LDAP://" & DomainNC _
& ">;(objectCategory=Computer);CN;subtree"
' END CALLOUT B
Command.Properties("Cache Results") = False
Command.Properties("Page Size") = 100
Command.Properties("Sort On") = "CN"
Command.Properties("Timeout") = 30
Set RecordSet = Command.Execute()

' BEGIN CALLOUT C
Do While Not RecordSet.EOF
WScript.Echo RecordSet.Fields("CN").Value
RecordSet.MoveNext()
Loop
' END CALLOUT C

Connection.Close()

--
Cordialement,
Mathieu CHATEAU
http://lordoftheping.blogspot.com


"Glenn Gagné" wrote in message
news:



Bonjour,

J'essais de diverses manières depuis mon poste de me connecter à l'Active
Directory de mon domaine via une requête LDAP, mais ça ne marche pas. Je
veux créer quelques VB scripts, pour gérer des choses sur mon domaine, qui
nécessitent une connexion en LDAP.

Je ne sais pas si je m'y prend mal, mais les exemples de connexions que
j'ai
essayé proviennent du site de Microsoft (en grande partie du Scripting Guy
!)

Bon ,sans parler de scripts, mais uniquement de connexion LDAP, est-ce que
par défaut un serveur Windows Server 2003 SP2 avec Active Directory ouvre
les communications LDAP sur le port 389 ?

Est-ce qu'il y a un outil EXE existant permettant de tester la
connectivité
LDAP ?

Est-ce qu'il existe une façon de formuler une requête LDAP très
spécifique,
avez-vous une requête bien banale qui fonctionne à coup sur (du genre
"sors-moi la liste de tous les utilisateurs du domaine")... ?

Voici commen j'ai tenté l'expérience:

Depuis mon poste client (Windows 2000 SP4):

Dans un script VBS, je tapes:

--------------------
Set objGroup = GetObject(LDAP://CN=groupe1,OU=MonOU2,DC=domaine,DC=com)

For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next
----------------------

* Si je ne fais pas d'erreur, je serais supposer voir dans une fenêtre un
après l'autre les membres (utilisateurs) de l'unité d'organisation (OU)
nommé MonOU2 faisant parti du groupe (CN) nommé groupe1 ???

Il ne m'apparait absolument rien (un echo vide une seule fois) et pourtant
ce groupe et OU existe.

Si par la suite je tapes la requête LDAP:

LDAP://DC=domaine,DC=com directement dans la barre d'adresse de Windows ou
IE et fais ENTER au clavier, j'obtiens la fenêtre de recherche du Carnet
d'adresse qui dans le champs de la zone de recherche est écrit:
DC=domaine,DC=com

Si je tapes un nom connus de l'AD, il me dit:

Impossible d'atteindre le service d'annuaire spécifié.

Le service est peut-être provisoirement indisponible ou le nom du serveur
n'est peut-être par correct.


Si j'essais d'ajouter mon domaine comme service d'annuaire dans Outlook,
j'ai le même problème...


Bref, je n'ai jamais pu atteindre AD avec LDAP... mais pourtant je vois AD
lorsque je recherche des imprimantes, lorsque je passe par les Favoris
réseau (sous la forme NTDS://domaine.com/MonOU1)

------------------------------------------


Merci de m'éclairer sur LDAP et AD.

Glenn




Avatar
Glenn Gagné
Oui, j'y avais pensé... mais mon problème n'étais pas initialement avec les
scripts (enfin je croyais) mais plutôt avec la connectivité LDAP de Active
Directory.

Merci


"Mathieu CHATEAU" a écrit dans le message de
news:
Bonjour,

vous devriez poster sur un forum de scripting.

Adfind de joeware est "the killing tool" :
http://www.joeware.net/freetools/tools/adfind/index.htm

un exemple de script pour lister tous les ordinateurs:

Dim RootDSE, DomainNC, Connection, Command, RecordSet
' BEGIN CALLOUT A
Set RootDSE = GetObject("LDAP://rootDSE")
DomainNC = RootDSE.Get("defaultNamingContext")
' END CALLOUT A
Set Connection = CreateObject("ADODB.Connection")
Connection.Open("Provider­sDSOObject;")
Set Command = CreateObject("ADODB.Command")
Command.ActiveConnection = Connection

' BEGIN CALLOUT B
Command.CommandText = "<LDAP://" & DomainNC _
& ">;(objectCategory=Computer);CN;subtree"
' END CALLOUT B
Command.Properties("Cache Results") = False
Command.Properties("Page Size") = 100
Command.Properties("Sort On") = "CN"
Command.Properties("Timeout") = 30
Set RecordSet = Command.Execute()

' BEGIN CALLOUT C
Do While Not RecordSet.EOF
WScript.Echo RecordSet.Fields("CN").Value
RecordSet.MoveNext()
Loop
' END CALLOUT C

Connection.Close()

--
Cordialement,
Mathieu CHATEAU
http://lordoftheping.blogspot.com


"Glenn Gagné" wrote in message
news:



Bonjour,

J'essais de diverses manières depuis mon poste de me connecter à
l'Active


Directory de mon domaine via une requête LDAP, mais ça ne marche pas.
Je


veux créer quelques VB scripts, pour gérer des choses sur mon domaine,
qui


nécessitent une connexion en LDAP.

Je ne sais pas si je m'y prend mal, mais les exemples de connexions que
j'ai
essayé proviennent du site de Microsoft (en grande partie du Scripting
Guy


!)

Bon ,sans parler de scripts, mais uniquement de connexion LDAP, est-ce
que


par défaut un serveur Windows Server 2003 SP2 avec Active Directory
ouvre


les communications LDAP sur le port 389 ?

Est-ce qu'il y a un outil EXE existant permettant de tester la
connectivité
LDAP ?

Est-ce qu'il existe une façon de formuler une requête LDAP très
spécifique,
avez-vous une requête bien banale qui fonctionne à coup sur (du genre
"sors-moi la liste de tous les utilisateurs du domaine")... ?

Voici commen j'ai tenté l'expérience:

Depuis mon poste client (Windows 2000 SP4):

Dans un script VBS, je tapes:

--------------------
Set objGroup = GetObject(LDAP://CN=groupe1,OU=MonOU2,DC=domaine,DC=com)

For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next
----------------------

* Si je ne fais pas d'erreur, je serais supposer voir dans une fenêtre
un


après l'autre les membres (utilisateurs) de l'unité d'organisation (OU)
nommé MonOU2 faisant parti du groupe (CN) nommé groupe1 ???

Il ne m'apparait absolument rien (un echo vide une seule fois) et
pourtant


ce groupe et OU existe.

Si par la suite je tapes la requête LDAP:

LDAP://DC=domaine,DC=com directement dans la barre d'adresse de Windows
ou


IE et fais ENTER au clavier, j'obtiens la fenêtre de recherche du
Carnet


d'adresse qui dans le champs de la zone de recherche est écrit:
DC=domaine,DC=com

Si je tapes un nom connus de l'AD, il me dit:

Impossible d'atteindre le service d'annuaire spécifié.

Le service est peut-être provisoirement indisponible ou le nom du
serveur


n'est peut-être par correct.


Si j'essais d'ajouter mon domaine comme service d'annuaire dans Outlook,
j'ai le même problème...


Bref, je n'ai jamais pu atteindre AD avec LDAP... mais pourtant je vois
AD


lorsque je recherche des imprimantes, lorsque je passe par les Favoris
réseau (sous la forme NTDS://domaine.com/MonOU1)

------------------------------------------


Merci de m'éclairer sur LDAP et AD.

Glenn







Avatar
Glenn Gagné
Bonjour Thierry,

Merci, effectivement j'ai oublié les "" ... mais uniquement dans le message
car je les avais bien mis dans mon script.

Après plusieurs tentatives, je me suis rendu compte (en enlevant On Error
Resume Next...) que le script fonctionne... mais pas avec tous les CN= ????

Pourriez-vous essayer de votre côté ceci:

1- J'ai fais comme vous l'essai sur:
Set objGroup GetObject("LDAP://CN=Utilisateurs,CN=Builtin,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Et ça fonctionne !!! Sauf que ça popup 4 fenêtres blanches (qui est égal au
nombre d'éléments) car le groupe Utilisateurs ne contient aucun nom
d'usagers (strUser) mais d'autres groupes.

2- J'ai fais ensuite:
Set objGroup = GetObject("LDAP://CN­mins du
domaine,CN=Users,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next


Et ça fonctionne !!! Je vois mes utilisateurs avec leur nom... sauf pour
"Administrateur" ???

3- J'ai fais exactement la même tentative sur le groupe "Utilisa. du
domaine" comme ceci:
Set objGroup = GetObject("LDAP://CN=Utilisa. du
domaine,CN=Users,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Et ça ne marche pas.... !!!! ?????

J'obtiens l'erreur suivante:
Script: C:test.vbs
Ligne: 2
Caract.: 3
Erreur: Cet objet n'est pas une collection.
Code: 800A01C3
Source: Erreur d'exécution Microsoft VBScript

Pourtant il existe vraiment un CN portant le nom "Utilisa. du domaine", Il
se pourrait que ce soit à cause du point de le nom ?

4- J'ai alors essayé pour le fun un autre groupe, "KLAdmins" (Admins des
ress. Kaspersky) qui est un groupe de sécurité Global de la même manière que
"Admins du domaine " ou "Utilisa. du domaine" et sans caractères spéciaux,
voici le résultat:

Set objGroup GetObject("LDAP://CN=KLAdmins,CN=Users,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Résultat:
Script: C:test.vbs
Ligne: 2
Caract.: 3
Erreur: Cet objet n'est pas une collection.
Code: 800A01C3
Source: Erreur d'exécution Microsoft VBScript

-----------------------------------------------

Je n'y comprends rien... des fois ça marche et des fois ça ne marche pas, je
n'ai pas de faute de frappe et les groupes existent bien...

Avez-vous une idée ?

Merci




"Thierry Frache" a écrit dans le message de
news:
Bonsoir Glenn,

pour l'outil, n'importe quel browser ldap peut être utilisé. Les outils de
support offrent un outil nommé LDP.EXE. Il permet de parcourir l'annuaire.

Pour l'erreur du script, vous avez oublié les " à la première ligne. Cela
fonctionne chez moi:

Set objGroup = GetObject("LDAP://CN=Users,CN=Builtin,DC=mshome,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Thierry

P.S.: La recherche via le carnet d'adresses ne s'applique qu'aux objets
disposant d'une adresse de messagerie. Pour l'interrogation, vous pouvez
effectivement utiliser le 389 ou le 3268 (catalogue global).

"Glenn Gagné" wrote in message
news:



Bonjour,

J'essais de diverses manières depuis mon poste de me connecter à
l'Active


Directory de mon domaine via une requête LDAP, mais ça ne marche pas.
Je


veux créer quelques VB scripts, pour gérer des choses sur mon domaine,
qui


nécessitent une connexion en LDAP.

Je ne sais pas si je m'y prend mal, mais les exemples de connexions que
j'ai
essayé proviennent du site de Microsoft (en grande partie du Scripting
Guy


!)

Bon ,sans parler de scripts, mais uniquement de connexion LDAP, est-ce
que


par défaut un serveur Windows Server 2003 SP2 avec Active Directory
ouvre


les communications LDAP sur le port 389 ?

Est-ce qu'il y a un outil EXE existant permettant de tester la
connectivité
LDAP ?

Est-ce qu'il existe une façon de formuler une requête LDAP très
spécifique,
avez-vous une requête bien banale qui fonctionne à coup sur (du genre
"sors-moi la liste de tous les utilisateurs du domaine")... ?

Voici commen j'ai tenté l'expérience:

Depuis mon poste client (Windows 2000 SP4):

Dans un script VBS, je tapes:

--------------------
Set objGroup = GetObject(LDAP://CN=groupe1,OU=MonOU2,DC=domaine,DC=com)

For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next
----------------------

* Si je ne fais pas d'erreur, je serais supposer voir dans une fenêtre
un


après l'autre les membres (utilisateurs) de l'unité d'organisation (OU)
nommé MonOU2 faisant parti du groupe (CN) nommé groupe1 ???

Il ne m'apparait absolument rien (un echo vide une seule fois) et
pourtant


ce groupe et OU existe.

Si par la suite je tapes la requête LDAP:

LDAP://DC=domaine,DC=com directement dans la barre d'adresse de Windows
ou


IE et fais ENTER au clavier, j'obtiens la fenêtre de recherche du
Carnet


d'adresse qui dans le champs de la zone de recherche est écrit:
DC=domaine,DC=com

Si je tapes un nom connus de l'AD, il me dit:

Impossible d'atteindre le service d'annuaire spécifié.

Le service est peut-être provisoirement indisponible ou le nom du
serveur


n'est peut-être par correct.


Si j'essais d'ajouter mon domaine comme service d'annuaire dans Outlook,
j'ai le même problème...


Bref, je n'ai jamais pu atteindre AD avec LDAP... mais pourtant je vois
AD


lorsque je recherche des imprimantes, lorsque je passe par les Favoris
réseau (sous la forme NTDS://domaine.com/MonOU1)

------------------------------------------


Merci de m'éclairer sur LDAP et AD.

Glenn








Avatar
Thierry Frache
Dites-moi exactement ce que vous voulez faire et je devrais pouvoir vous
aider à concevoir le script qu'il vous faut.

Thierry

P.S.: Vous avez mon email donc à la limite, n'hésitez pas à me contacter
directement (on gagnera du temps et cela évitera de se prendre des remarques
du genre "c'est pas le bon endroit pour parler de ça"...).

"Glenn Gagné" wrote in message
news:
Bonjour Thierry,

Merci, effectivement j'ai oublié les "" ... mais uniquement dans le
message
car je les avais bien mis dans mon script.

Après plusieurs tentatives, je me suis rendu compte (en enlevant On Error
Resume Next...) que le script fonctionne... mais pas avec tous les CN=
????

Pourriez-vous essayer de votre côté ceci:

1- J'ai fais comme vous l'essai sur:
Set objGroup > GetObject("LDAP://CN=Utilisateurs,CN=Builtin,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Et ça fonctionne !!! Sauf que ça popup 4 fenêtres blanches (qui est égal
au
nombre d'éléments) car le groupe Utilisateurs ne contient aucun nom
d'usagers (strUser) mais d'autres groupes.

2- J'ai fais ensuite:
Set objGroup = GetObject("LDAP://CN­mins du
domaine,CN=Users,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next


Et ça fonctionne !!! Je vois mes utilisateurs avec leur nom... sauf pour
"Administrateur" ???

3- J'ai fais exactement la même tentative sur le groupe "Utilisa. du
domaine" comme ceci:
Set objGroup = GetObject("LDAP://CN=Utilisa. du
domaine,CN=Users,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Et ça ne marche pas.... !!!! ?????

J'obtiens l'erreur suivante:
Script: C:test.vbs
Ligne: 2
Caract.: 3
Erreur: Cet objet n'est pas une collection.
Code: 800A01C3
Source: Erreur d'exécution Microsoft VBScript

Pourtant il existe vraiment un CN portant le nom "Utilisa. du domaine", Il
se pourrait que ce soit à cause du point de le nom ?

4- J'ai alors essayé pour le fun un autre groupe, "KLAdmins" (Admins des
ress. Kaspersky) qui est un groupe de sécurité Global de la même manière
que
"Admins du domaine " ou "Utilisa. du domaine" et sans caractères spéciaux,
voici le résultat:

Set objGroup > GetObject("LDAP://CN=KLAdmins,CN=Users,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Résultat:
Script: C:test.vbs
Ligne: 2
Caract.: 3
Erreur: Cet objet n'est pas une collection.
Code: 800A01C3
Source: Erreur d'exécution Microsoft VBScript

-----------------------------------------------

Je n'y comprends rien... des fois ça marche et des fois ça ne marche pas,
je
n'ai pas de faute de frappe et les groupes existent bien...

Avez-vous une idée ?

Merci




"Thierry Frache" a écrit dans le message de
news:
Bonsoir Glenn,

pour l'outil, n'importe quel browser ldap peut être utilisé. Les outils
de
support offrent un outil nommé LDP.EXE. Il permet de parcourir
l'annuaire.

Pour l'erreur du script, vous avez oublié les " à la première ligne. Cela
fonctionne chez moi:

Set objGroup = GetObject("LDAP://CN=Users,CN=Builtin,DC=mshome,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Thierry

P.S.: La recherche via le carnet d'adresses ne s'applique qu'aux objets
disposant d'une adresse de messagerie. Pour l'interrogation, vous pouvez
effectivement utiliser le 389 ou le 3268 (catalogue global).

"Glenn Gagné" wrote in message
news:



Bonjour,

J'essais de diverses manières depuis mon poste de me connecter à
l'Active


Directory de mon domaine via une requête LDAP, mais ça ne marche pas.
Je


veux créer quelques VB scripts, pour gérer des choses sur mon domaine,
qui


nécessitent une connexion en LDAP.

Je ne sais pas si je m'y prend mal, mais les exemples de connexions que
j'ai
essayé proviennent du site de Microsoft (en grande partie du Scripting
Guy


!)

Bon ,sans parler de scripts, mais uniquement de connexion LDAP, est-ce
que


par défaut un serveur Windows Server 2003 SP2 avec Active Directory
ouvre


les communications LDAP sur le port 389 ?

Est-ce qu'il y a un outil EXE existant permettant de tester la
connectivité
LDAP ?

Est-ce qu'il existe une façon de formuler une requête LDAP très
spécifique,
avez-vous une requête bien banale qui fonctionne à coup sur (du genre
"sors-moi la liste de tous les utilisateurs du domaine")... ?

Voici commen j'ai tenté l'expérience:

Depuis mon poste client (Windows 2000 SP4):

Dans un script VBS, je tapes:

--------------------
Set objGroup = GetObject(LDAP://CN=groupe1,OU=MonOU2,DC=domaine,DC=com)

For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next
----------------------

* Si je ne fais pas d'erreur, je serais supposer voir dans une fenêtre
un


après l'autre les membres (utilisateurs) de l'unité d'organisation (OU)
nommé MonOU2 faisant parti du groupe (CN) nommé groupe1 ???

Il ne m'apparait absolument rien (un echo vide une seule fois) et
pourtant


ce groupe et OU existe.

Si par la suite je tapes la requête LDAP:

LDAP://DC=domaine,DC=com directement dans la barre d'adresse de Windows
ou


IE et fais ENTER au clavier, j'obtiens la fenêtre de recherche du
Carnet


d'adresse qui dans le champs de la zone de recherche est écrit:
DC=domaine,DC=com

Si je tapes un nom connus de l'AD, il me dit:

Impossible d'atteindre le service d'annuaire spécifié.

Le service est peut-être provisoirement indisponible ou le nom du
serveur


n'est peut-être par correct.


Si j'essais d'ajouter mon domaine comme service d'annuaire dans
Outlook,
j'ai le même problème...


Bref, je n'ai jamais pu atteindre AD avec LDAP... mais pourtant je vois
AD


lorsque je recherche des imprimantes, lorsque je passe par les Favoris
réseau (sous la forme NTDS://domaine.com/MonOU1)

------------------------------------------


Merci de m'éclairer sur LDAP et AD.

Glenn












Avatar
Glenn Gagné
Je suivais le script du Scripting Guy pour trouver tous les utilisateurs de
mon domaine afin de créer une liste de distribution dans Outlook avec
ceux-ci... là ça bloque justement si je choisis le groupe (CN) qui s'appelle
"Utilisa. du domaine"

Temporairement, si je veux, je créé un nouveau groupe "toto" où j'y inclus
tous les utilisateurs du domaine et ça fonctionne !

Set objGroup = GetObject("LDAP://CN=toto,CN=Users,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

-----------------------

Je ne vois pas pourquoi que sur certains groupes ça bloque par contre... De
plus, en faisant des recherches j'ai vu que la méthode "Set objGroup GetObject("LDAP://..." avec une boucle sur Member est fréquemment utilisée
pour plein de choses (entre autre l'authentification dans une page ASP des
utilisateurs) ce qui m'intéressera pour plus tard.

Je ne suis pas le genre de personnes, lorsque j'ai trouvé une méthode
alternative temporaire à en rester là, je veux toujours avoir pourquoi la
méthode "normal" ne fonctionne pas :o)

------------------------

Même si ça sort du sujet initial (prob de requête LDAP avec AD). Pour le
script exact en question, le reste du script est remplacé à la fin (au-lieu
de faire un WScript.Echo strUserName) par:

Set objRecipient = objOutlook.Session.CreateRecipient(strUserName)
objRecipient.Resolve
objList.AddMember objRecipient

Qui encore là fais une erreur sur objList.AddMember !!!! Il va falloir que
je sache pourquoi !

pour bien comprendre voici le script complet de la situation:

--------------------------------------


Const olDistributionListItem = 7
Set objOutlook = CreateObject("Outlook.Application")
Set objList = objOutlook.CreateItem(olDistributionListItem)

objList.DLName = "Mon Groupe"
objList.Save

Set objGroup = GetObject("LDAP://CN=Tous,CN=Users,DC=domaine,DC=local")

For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Set objRecipient = objOutlook.Session.CreateRecipient(strUserName)
objRecipient.Resolve
objList.AddMember objRecipient
Next

----------------------------------------

Merci


Glenn


"Thierry Frache" a écrit dans le message de
news:O$
Dites-moi exactement ce que vous voulez faire et je devrais pouvoir vous
aider à concevoir le script qu'il vous faut.

Thierry

P.S.: Vous avez mon email donc à la limite, n'hésitez pas à me contacter
directement (on gagnera du temps et cela évitera de se prendre des
remarques

du genre "c'est pas le bon endroit pour parler de ça"...).

"Glenn Gagné" wrote in message
news:
Bonjour Thierry,

Merci, effectivement j'ai oublié les "" ... mais uniquement dans le
message
car je les avais bien mis dans mon script.

Après plusieurs tentatives, je me suis rendu compte (en enlevant On
Error


Resume Next...) que le script fonctionne... mais pas avec tous les CN > > ????

Pourriez-vous essayer de votre côté ceci:

1- J'ai fais comme vous l'essai sur:
Set objGroup > > GetObject("LDAP://CN=Utilisateurs,CN=Builtin,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Et ça fonctionne !!! Sauf que ça popup 4 fenêtres blanches (qui est égal
au
nombre d'éléments) car le groupe Utilisateurs ne contient aucun nom
d'usagers (strUser) mais d'autres groupes.

2- J'ai fais ensuite:
Set objGroup = GetObject("LDAP://CN­mins du
domaine,CN=Users,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next


Et ça fonctionne !!! Je vois mes utilisateurs avec leur nom... sauf pour
"Administrateur" ???

3- J'ai fais exactement la même tentative sur le groupe "Utilisa. du
domaine" comme ceci:
Set objGroup = GetObject("LDAP://CN=Utilisa. du
domaine,CN=Users,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Et ça ne marche pas.... !!!! ?????

J'obtiens l'erreur suivante:
Script: C:test.vbs
Ligne: 2
Caract.: 3
Erreur: Cet objet n'est pas une collection.
Code: 800A01C3
Source: Erreur d'exécution Microsoft VBScript

Pourtant il existe vraiment un CN portant le nom "Utilisa. du domaine",
Il


se pourrait que ce soit à cause du point de le nom ?

4- J'ai alors essayé pour le fun un autre groupe, "KLAdmins" (Admins des
ress. Kaspersky) qui est un groupe de sécurité Global de la même manière
que
"Admins du domaine " ou "Utilisa. du domaine" et sans caractères
spéciaux,


voici le résultat:

Set objGroup > > GetObject("LDAP://CN=KLAdmins,CN=Users,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Résultat:
Script: C:test.vbs
Ligne: 2
Caract.: 3
Erreur: Cet objet n'est pas une collection.
Code: 800A01C3
Source: Erreur d'exécution Microsoft VBScript

-----------------------------------------------

Je n'y comprends rien... des fois ça marche et des fois ça ne marche
pas,


je
n'ai pas de faute de frappe et les groupes existent bien...

Avez-vous une idée ?

Merci




"Thierry Frache" a écrit dans le message
de


news:
Bonsoir Glenn,

pour l'outil, n'importe quel browser ldap peut être utilisé. Les outils
de
support offrent un outil nommé LDP.EXE. Il permet de parcourir
l'annuaire.

Pour l'erreur du script, vous avez oublié les " à la première ligne.
Cela



fonctionne chez moi:

Set objGroup GetObject("LDAP://CN=Users,CN=Builtin,DC=mshome,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Thierry

P.S.: La recherche via le carnet d'adresses ne s'applique qu'aux objets
disposant d'une adresse de messagerie. Pour l'interrogation, vous
pouvez



effectivement utiliser le 389 ou le 3268 (catalogue global).

"Glenn Gagné" wrote in message
news:



Bonjour,

J'essais de diverses manières depuis mon poste de me connecter à
l'Active


Directory de mon domaine via une requête LDAP, mais ça ne marche
pas.




Je
veux créer quelques VB scripts, pour gérer des choses sur mon
domaine,




qui
nécessitent une connexion en LDAP.

Je ne sais pas si je m'y prend mal, mais les exemples de connexions
que




j'ai
essayé proviennent du site de Microsoft (en grande partie du
Scripting




Guy
!)

Bon ,sans parler de scripts, mais uniquement de connexion LDAP,
est-ce




que
par défaut un serveur Windows Server 2003 SP2 avec Active Directory
ouvre


les communications LDAP sur le port 389 ?

Est-ce qu'il y a un outil EXE existant permettant de tester la
connectivité
LDAP ?

Est-ce qu'il existe une façon de formuler une requête LDAP très
spécifique,
avez-vous une requête bien banale qui fonctionne à coup sur (du genre
"sors-moi la liste de tous les utilisateurs du domaine")... ?

Voici commen j'ai tenté l'expérience:

Depuis mon poste client (Windows 2000 SP4):

Dans un script VBS, je tapes:

--------------------
Set objGroup GetObject(LDAP://CN=groupe1,OU=MonOU2,DC=domaine,DC=com)

For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next
----------------------

* Si je ne fais pas d'erreur, je serais supposer voir dans une
fenêtre




un
après l'autre les membres (utilisateurs) de l'unité d'organisation
(OU)




nommé MonOU2 faisant parti du groupe (CN) nommé groupe1 ???

Il ne m'apparait absolument rien (un echo vide une seule fois) et
pourtant


ce groupe et OU existe.

Si par la suite je tapes la requête LDAP:

LDAP://DC=domaine,DC=com directement dans la barre d'adresse de
Windows




ou
IE et fais ENTER au clavier, j'obtiens la fenêtre de recherche du
Carnet


d'adresse qui dans le champs de la zone de recherche est écrit:
DC=domaine,DC=com

Si je tapes un nom connus de l'AD, il me dit:

Impossible d'atteindre le service d'annuaire spécifié.

Le service est peut-être provisoirement indisponible ou le nom du
serveur


n'est peut-être par correct.


Si j'essais d'ajouter mon domaine comme service d'annuaire dans
Outlook,
j'ai le même problème...


Bref, je n'ai jamais pu atteindre AD avec LDAP... mais pourtant je
vois




AD
lorsque je recherche des imprimantes, lorsque je passe par les
Favoris




réseau (sous la forme NTDS://domaine.com/MonOU1)

------------------------------------------


Merci de m'éclairer sur LDAP et AD.

Glenn
















Avatar
Thierry Frache
L'attribut 'member' du groupe des utilisateurs du domaine (par défaut
'Utilisateurs du domaine') ne référence pas les utilisateurs
du domaine. Par définition, tous les utilisateurs du domaine sont membres du
groupe 'Utilisateurs du domaine'. Il en est de même pour
l'attribut 'memberOf' des utilisateurs. Cet attribut ne référence pas le
groupe du domaine. C'est pour cette raison que cela ne fonctionne pas avec
le groupe domain users mais que cela marche avec schema admins par exemple.

Thierry

"Glenn Gagné" wrote in message
news:%
Je suivais le script du Scripting Guy pour trouver tous les utilisateurs
de
mon domaine afin de créer une liste de distribution dans Outlook avec
ceux-ci... là ça bloque justement si je choisis le groupe (CN) qui
s'appelle
"Utilisa. du domaine"

Temporairement, si je veux, je créé un nouveau groupe "toto" où j'y inclus
tous les utilisateurs du domaine et ça fonctionne !

Set objGroup = GetObject("LDAP://CN=toto,CN=Users,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

-----------------------

Je ne vois pas pourquoi que sur certains groupes ça bloque par contre...
De
plus, en faisant des recherches j'ai vu que la méthode "Set objGroup > GetObject("LDAP://..." avec une boucle sur Member est fréquemment utilisée
pour plein de choses (entre autre l'authentification dans une page ASP des
utilisateurs) ce qui m'intéressera pour plus tard.

Je ne suis pas le genre de personnes, lorsque j'ai trouvé une méthode
alternative temporaire à en rester là, je veux toujours avoir pourquoi la
méthode "normal" ne fonctionne pas :o)

------------------------

Même si ça sort du sujet initial (prob de requête LDAP avec AD). Pour le
script exact en question, le reste du script est remplacé à la fin
(au-lieu
de faire un WScript.Echo strUserName) par:

Set objRecipient = objOutlook.Session.CreateRecipient(strUserName)
objRecipient.Resolve
objList.AddMember objRecipient

Qui encore là fais une erreur sur objList.AddMember !!!! Il va falloir que
je sache pourquoi !

pour bien comprendre voici le script complet de la situation:

--------------------------------------


Const olDistributionListItem = 7
Set objOutlook = CreateObject("Outlook.Application")
Set objList = objOutlook.CreateItem(olDistributionListItem)

objList.DLName = "Mon Groupe"
objList.Save

Set objGroup = GetObject("LDAP://CN=Tous,CN=Users,DC=domaine,DC=local")

For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Set objRecipient = objOutlook.Session.CreateRecipient(strUserName)
objRecipient.Resolve
objList.AddMember objRecipient
Next

----------------------------------------

Merci


Glenn


"Thierry Frache" a écrit dans le message de
news:O$
Dites-moi exactement ce que vous voulez faire et je devrais pouvoir vous
aider à concevoir le script qu'il vous faut.

Thierry

P.S.: Vous avez mon email donc à la limite, n'hésitez pas à me contacter
directement (on gagnera du temps et cela évitera de se prendre des
remarques

du genre "c'est pas le bon endroit pour parler de ça"...).

"Glenn Gagné" wrote in message
news:
Bonjour Thierry,

Merci, effectivement j'ai oublié les "" ... mais uniquement dans le
message
car je les avais bien mis dans mon script.

Après plusieurs tentatives, je me suis rendu compte (en enlevant On
Error


Resume Next...) que le script fonctionne... mais pas avec tous les CN >> > ????

Pourriez-vous essayer de votre côté ceci:

1- J'ai fais comme vous l'essai sur:
Set objGroup >> > GetObject("LDAP://CN=Utilisateurs,CN=Builtin,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Et ça fonctionne !!! Sauf que ça popup 4 fenêtres blanches (qui est
égal
au
nombre d'éléments) car le groupe Utilisateurs ne contient aucun nom
d'usagers (strUser) mais d'autres groupes.

2- J'ai fais ensuite:
Set objGroup = GetObject("LDAP://CN­mins du
domaine,CN=Users,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next


Et ça fonctionne !!! Je vois mes utilisateurs avec leur nom... sauf
pour
"Administrateur" ???

3- J'ai fais exactement la même tentative sur le groupe "Utilisa. du
domaine" comme ceci:
Set objGroup = GetObject("LDAP://CN=Utilisa. du
domaine,CN=Users,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Et ça ne marche pas.... !!!! ?????

J'obtiens l'erreur suivante:
Script: C:test.vbs
Ligne: 2
Caract.: 3
Erreur: Cet objet n'est pas une collection.
Code: 800A01C3
Source: Erreur d'exécution Microsoft VBScript

Pourtant il existe vraiment un CN portant le nom "Utilisa. du domaine",
Il


se pourrait que ce soit à cause du point de le nom ?

4- J'ai alors essayé pour le fun un autre groupe, "KLAdmins" (Admins
des
ress. Kaspersky) qui est un groupe de sécurité Global de la même
manière
que
"Admins du domaine " ou "Utilisa. du domaine" et sans caractères
spéciaux,


voici le résultat:

Set objGroup >> > GetObject("LDAP://CN=KLAdmins,CN=Users,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Résultat:
Script: C:test.vbs
Ligne: 2
Caract.: 3
Erreur: Cet objet n'est pas une collection.
Code: 800A01C3
Source: Erreur d'exécution Microsoft VBScript

-----------------------------------------------

Je n'y comprends rien... des fois ça marche et des fois ça ne marche
pas,


je
n'ai pas de faute de frappe et les groupes existent bien...

Avez-vous une idée ?

Merci




"Thierry Frache" a écrit dans le message
de


news:
Bonsoir Glenn,

pour l'outil, n'importe quel browser ldap peut être utilisé. Les
outils
de
support offrent un outil nommé LDP.EXE. Il permet de parcourir
l'annuaire.

Pour l'erreur du script, vous avez oublié les " à la première ligne.
Cela



fonctionne chez moi:

Set objGroup > GetObject("LDAP://CN=Users,CN=Builtin,DC=mshome,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Thierry

P.S.: La recherche via le carnet d'adresses ne s'applique qu'aux
objets
disposant d'une adresse de messagerie. Pour l'interrogation, vous
pouvez



effectivement utiliser le 389 ou le 3268 (catalogue global).

"Glenn Gagné" wrote in message
news:



Bonjour,

J'essais de diverses manières depuis mon poste de me connecter à
l'Active


Directory de mon domaine via une requête LDAP, mais ça ne marche
pas.




Je
veux créer quelques VB scripts, pour gérer des choses sur mon
domaine,




qui
nécessitent une connexion en LDAP.

Je ne sais pas si je m'y prend mal, mais les exemples de connexions
que




j'ai
essayé proviennent du site de Microsoft (en grande partie du
Scripting




Guy
!)

Bon ,sans parler de scripts, mais uniquement de connexion LDAP,
est-ce




que
par défaut un serveur Windows Server 2003 SP2 avec Active Directory
ouvre


les communications LDAP sur le port 389 ?

Est-ce qu'il y a un outil EXE existant permettant de tester la
connectivité
LDAP ?

Est-ce qu'il existe une façon de formuler une requête LDAP très
spécifique,
avez-vous une requête bien banale qui fonctionne à coup sur (du
genre
"sors-moi la liste de tous les utilisateurs du domaine")... ?

Voici commen j'ai tenté l'expérience:

Depuis mon poste client (Windows 2000 SP4):

Dans un script VBS, je tapes:

--------------------
Set objGroup > GetObject(LDAP://CN=groupe1,OU=MonOU2,DC=domaine,DC=com)

For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next
----------------------

* Si je ne fais pas d'erreur, je serais supposer voir dans une
fenêtre




un
après l'autre les membres (utilisateurs) de l'unité d'organisation
(OU)




nommé MonOU2 faisant parti du groupe (CN) nommé groupe1 ???

Il ne m'apparait absolument rien (un echo vide une seule fois) et
pourtant


ce groupe et OU existe.

Si par la suite je tapes la requête LDAP:

LDAP://DC=domaine,DC=com directement dans la barre d'adresse de
Windows




ou
IE et fais ENTER au clavier, j'obtiens la fenêtre de recherche du
Carnet


d'adresse qui dans le champs de la zone de recherche est écrit:
DC=domaine,DC=com

Si je tapes un nom connus de l'AD, il me dit:

Impossible d'atteindre le service d'annuaire spécifié.

Le service est peut-être provisoirement indisponible ou le nom du
serveur


n'est peut-être par correct.


Si j'essais d'ajouter mon domaine comme service d'annuaire dans
Outlook,
j'ai le même problème...


Bref, je n'ai jamais pu atteindre AD avec LDAP... mais pourtant je
vois




AD
lorsque je recherche des imprimantes, lorsque je passe par les
Favoris




réseau (sous la forme NTDS://domaine.com/MonOU1)

------------------------------------------


Merci de m'éclairer sur LDAP et AD.

Glenn




















Avatar
Glenn Gagné
Salut Thierry,

Je crois que tu es dans l'erreur... car c'est le groupe "Utilisateurs" dans
"Builtin" qui ne référence pas les utilisateurs. Le groupe "Utilisa. du
domaine" dans le conteneur "Users" contient bien la liste des utilisateurs
(si je regarde dans l'onglet Membres je les vois tous très clairement,
contrairement au groupe Utilisateurs qui contient comme membres: INTERACTIF,
Utilisa. du domaine et Utilisateurs authentifiés qui celui-ci en passant ne
cause pas d'erreur et pourtant ne contient pas d'éléments membre de type
utilisateur).

NOTE: Lorsque j'essais le script sur un CN autre qui ne contient pas
d'éléments membre de type "utilisateurs" ils ne sont tout simplement pas
compté... mais ne fais pas apparaitre le message d'erreur " Erreur: Cet
objet n'est pas une collection."

---------------------------

Glenn

"Thierry Frache" a écrit dans le message de
news:%
L'attribut 'member' du groupe des utilisateurs du domaine (par défaut
'Utilisateurs du domaine') ne référence pas les utilisateurs
du domaine. Par définition, tous les utilisateurs du domaine sont membres
du

groupe 'Utilisateurs du domaine'. Il en est de même pour
l'attribut 'memberOf' des utilisateurs. Cet attribut ne référence pas le
groupe du domaine. C'est pour cette raison que cela ne fonctionne pas avec
le groupe domain users mais que cela marche avec schema admins par
exemple.


Thierry

"Glenn Gagné" wrote in message
news:%
Je suivais le script du Scripting Guy pour trouver tous les utilisateurs
de
mon domaine afin de créer une liste de distribution dans Outlook avec
ceux-ci... là ça bloque justement si je choisis le groupe (CN) qui
s'appelle
"Utilisa. du domaine"

Temporairement, si je veux, je créé un nouveau groupe "toto" où j'y
inclus


tous les utilisateurs du domaine et ça fonctionne !

Set objGroup GetObject("LDAP://CN=toto,CN=Users,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

-----------------------

Je ne vois pas pourquoi que sur certains groupes ça bloque par contre...
De
plus, en faisant des recherches j'ai vu que la méthode "Set objGroup > > GetObject("LDAP://..." avec une boucle sur Member est fréquemment
utilisée


pour plein de choses (entre autre l'authentification dans une page ASP
des


utilisateurs) ce qui m'intéressera pour plus tard.

Je ne suis pas le genre de personnes, lorsque j'ai trouvé une méthode
alternative temporaire à en rester là, je veux toujours avoir pourquoi
la


méthode "normal" ne fonctionne pas :o)

------------------------

Même si ça sort du sujet initial (prob de requête LDAP avec AD). Pour le
script exact en question, le reste du script est remplacé à la fin
(au-lieu
de faire un WScript.Echo strUserName) par:

Set objRecipient = objOutlook.Session.CreateRecipient(strUserName)
objRecipient.Resolve
objList.AddMember objRecipient

Qui encore là fais une erreur sur objList.AddMember !!!! Il va falloir
que


je sache pourquoi !

pour bien comprendre voici le script complet de la situation:

--------------------------------------


Const olDistributionListItem = 7
Set objOutlook = CreateObject("Outlook.Application")
Set objList = objOutlook.CreateItem(olDistributionListItem)

objList.DLName = "Mon Groupe"
objList.Save

Set objGroup = GetObject("LDAP://CN=Tous,CN=Users,DC=domaine,DC=local")

For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Set objRecipient = objOutlook.Session.CreateRecipient(strUserName)
objRecipient.Resolve
objList.AddMember objRecipient
Next

----------------------------------------

Merci


Glenn


"Thierry Frache" a écrit dans le message
de


news:O$
Dites-moi exactement ce que vous voulez faire et je devrais pouvoir
vous



aider à concevoir le script qu'il vous faut.

Thierry

P.S.: Vous avez mon email donc à la limite, n'hésitez pas à me
contacter



directement (on gagnera du temps et cela évitera de se prendre des
remarques

du genre "c'est pas le bon endroit pour parler de ça"...).

"Glenn Gagné" wrote in message
news:
Bonjour Thierry,

Merci, effectivement j'ai oublié les "" ... mais uniquement dans le
message
car je les avais bien mis dans mon script.

Après plusieurs tentatives, je me suis rendu compte (en enlevant On
Error


Resume Next...) que le script fonctionne... mais pas avec tous les
CN > >> > ????





Pourriez-vous essayer de votre côté ceci:

1- J'ai fais comme vous l'essai sur:
Set objGroup > >> > GetObject("LDAP://CN=Utilisateurs,CN=Builtin,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Et ça fonctionne !!! Sauf que ça popup 4 fenêtres blanches (qui est
égal
au
nombre d'éléments) car le groupe Utilisateurs ne contient aucun nom
d'usagers (strUser) mais d'autres groupes.

2- J'ai fais ensuite:
Set objGroup = GetObject("LDAP://CN­mins du
domaine,CN=Users,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next


Et ça fonctionne !!! Je vois mes utilisateurs avec leur nom... sauf
pour
"Administrateur" ???

3- J'ai fais exactement la même tentative sur le groupe "Utilisa. du
domaine" comme ceci:
Set objGroup = GetObject("LDAP://CN=Utilisa. du
domaine,CN=Users,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Et ça ne marche pas.... !!!! ?????

J'obtiens l'erreur suivante:
Script: C:test.vbs
Ligne: 2
Caract.: 3
Erreur: Cet objet n'est pas une collection.
Code: 800A01C3
Source: Erreur d'exécution Microsoft VBScript

Pourtant il existe vraiment un CN portant le nom "Utilisa. du
domaine",




Il
se pourrait que ce soit à cause du point de le nom ?

4- J'ai alors essayé pour le fun un autre groupe, "KLAdmins" (Admins
des
ress. Kaspersky) qui est un groupe de sécurité Global de la même
manière
que
"Admins du domaine " ou "Utilisa. du domaine" et sans caractères
spéciaux,


voici le résultat:

Set objGroup > >> > GetObject("LDAP://CN=KLAdmins,CN=Users,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Résultat:
Script: C:test.vbs
Ligne: 2
Caract.: 3
Erreur: Cet objet n'est pas une collection.
Code: 800A01C3
Source: Erreur d'exécution Microsoft VBScript

-----------------------------------------------

Je n'y comprends rien... des fois ça marche et des fois ça ne marche
pas,


je
n'ai pas de faute de frappe et les groupes existent bien...

Avez-vous une idée ?

Merci




"Thierry Frache" a écrit dans le
message




de
news:
Bonsoir Glenn,

pour l'outil, n'importe quel browser ldap peut être utilisé. Les
outils
de
support offrent un outil nommé LDP.EXE. Il permet de parcourir
l'annuaire.

Pour l'erreur du script, vous avez oublié les " à la première ligne.
Cela



fonctionne chez moi:

Set objGroup > > GetObject("LDAP://CN=Users,CN=Builtin,DC=mshome,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Thierry

P.S.: La recherche via le carnet d'adresses ne s'applique qu'aux
objets
disposant d'une adresse de messagerie. Pour l'interrogation, vous
pouvez



effectivement utiliser le 389 ou le 3268 (catalogue global).

"Glenn Gagné" wrote in message
news:



Bonjour,

J'essais de diverses manières depuis mon poste de me connecter à
l'Active


Directory de mon domaine via une requête LDAP, mais ça ne marche
pas.




Je
veux créer quelques VB scripts, pour gérer des choses sur mon
domaine,




qui
nécessitent une connexion en LDAP.

Je ne sais pas si je m'y prend mal, mais les exemples de
connexions






que
j'ai
essayé proviennent du site de Microsoft (en grande partie du
Scripting




Guy
!)

Bon ,sans parler de scripts, mais uniquement de connexion LDAP,
est-ce




que
par défaut un serveur Windows Server 2003 SP2 avec Active
Directory






ouvre
les communications LDAP sur le port 389 ?

Est-ce qu'il y a un outil EXE existant permettant de tester la
connectivité
LDAP ?

Est-ce qu'il existe une façon de formuler une requête LDAP très
spécifique,
avez-vous une requête bien banale qui fonctionne à coup sur (du
genre
"sors-moi la liste de tous les utilisateurs du domaine")... ?

Voici commen j'ai tenté l'expérience:

Depuis mon poste client (Windows 2000 SP4):

Dans un script VBS, je tapes:

--------------------
Set objGroup > > GetObject(LDAP://CN=groupe1,OU=MonOU2,DC=domaine,DC=com)

For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next
----------------------

* Si je ne fais pas d'erreur, je serais supposer voir dans une
fenêtre




un
après l'autre les membres (utilisateurs) de l'unité d'organisation
(OU)




nommé MonOU2 faisant parti du groupe (CN) nommé groupe1 ???

Il ne m'apparait absolument rien (un echo vide une seule fois) et
pourtant


ce groupe et OU existe.

Si par la suite je tapes la requête LDAP:

LDAP://DC=domaine,DC=com directement dans la barre d'adresse de
Windows




ou
IE et fais ENTER au clavier, j'obtiens la fenêtre de recherche du
Carnet


d'adresse qui dans le champs de la zone de recherche est écrit:
DC=domaine,DC=com

Si je tapes un nom connus de l'AD, il me dit:

Impossible d'atteindre le service d'annuaire spécifié.

Le service est peut-être provisoirement indisponible ou le nom du
serveur


n'est peut-être par correct.


Si j'essais d'ajouter mon domaine comme service d'annuaire dans
Outlook,
j'ai le même problème...


Bref, je n'ai jamais pu atteindre AD avec LDAP... mais pourtant je
vois




AD
lorsque je recherche des imprimantes, lorsque je passe par les
Favoris




réseau (sous la forme NTDS://domaine.com/MonOU1)

------------------------------------------


Merci de m'éclairer sur LDAP et AD.

Glenn
























Avatar
Thierry Frache
Je ne pense pas être dans l'erreur:
http://groups.google.fr/group/microsoft.public.windows.server.scripting/browse_thread/thread/ca0c1428e51c1fd/02b4d7abc5821c7f?lnk=st&q=%22domain+users%22+member+vbscript&rnum=7&hl=en#02b4d7abc5821c7f

By default, the "primary" group for users is "Domain Users". Unless you have
modified this, you can assume that everyone belongs to that group. The above
script may show that group as empty.

Thierry

"Glenn Gagné" wrote in message
news:
Salut Thierry,

Je crois que tu es dans l'erreur... car c'est le groupe "Utilisateurs"
dans
"Builtin" qui ne référence pas les utilisateurs. Le groupe "Utilisa. du
domaine" dans le conteneur "Users" contient bien la liste des utilisateurs
(si je regarde dans l'onglet Membres je les vois tous très clairement,
contrairement au groupe Utilisateurs qui contient comme membres:
INTERACTIF,
Utilisa. du domaine et Utilisateurs authentifiés qui celui-ci en passant
ne
cause pas d'erreur et pourtant ne contient pas d'éléments membre de type
utilisateur).

NOTE: Lorsque j'essais le script sur un CN autre qui ne contient pas
d'éléments membre de type "utilisateurs" ils ne sont tout simplement pas
compté... mais ne fais pas apparaitre le message d'erreur " Erreur: Cet
objet n'est pas une collection."

---------------------------

Glenn

"Thierry Frache" a écrit dans le message de
news:%
L'attribut 'member' du groupe des utilisateurs du domaine (par défaut
'Utilisateurs du domaine') ne référence pas les utilisateurs
du domaine. Par définition, tous les utilisateurs du domaine sont membres
du

groupe 'Utilisateurs du domaine'. Il en est de même pour
l'attribut 'memberOf' des utilisateurs. Cet attribut ne référence pas le
groupe du domaine. C'est pour cette raison que cela ne fonctionne pas
avec
le groupe domain users mais que cela marche avec schema admins par
exemple.


Thierry

"Glenn Gagné" wrote in message
news:%
Je suivais le script du Scripting Guy pour trouver tous les
utilisateurs
de
mon domaine afin de créer une liste de distribution dans Outlook avec
ceux-ci... là ça bloque justement si je choisis le groupe (CN) qui
s'appelle
"Utilisa. du domaine"

Temporairement, si je veux, je créé un nouveau groupe "toto" où j'y
inclus


tous les utilisateurs du domaine et ça fonctionne !

Set objGroup > GetObject("LDAP://CN=toto,CN=Users,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

-----------------------

Je ne vois pas pourquoi que sur certains groupes ça bloque par
contre...
De
plus, en faisant des recherches j'ai vu que la méthode "Set objGroup >> > GetObject("LDAP://..." avec une boucle sur Member est fréquemment
utilisée


pour plein de choses (entre autre l'authentification dans une page ASP
des


utilisateurs) ce qui m'intéressera pour plus tard.

Je ne suis pas le genre de personnes, lorsque j'ai trouvé une méthode
alternative temporaire à en rester là, je veux toujours avoir pourquoi
la


méthode "normal" ne fonctionne pas :o)

------------------------

Même si ça sort du sujet initial (prob de requête LDAP avec AD). Pour
le
script exact en question, le reste du script est remplacé à la fin
(au-lieu
de faire un WScript.Echo strUserName) par:

Set objRecipient = objOutlook.Session.CreateRecipient(strUserName)
objRecipient.Resolve
objList.AddMember objRecipient

Qui encore là fais une erreur sur objList.AddMember !!!! Il va falloir
que


je sache pourquoi !

pour bien comprendre voici le script complet de la situation:

--------------------------------------


Const olDistributionListItem = 7
Set objOutlook = CreateObject("Outlook.Application")
Set objList = objOutlook.CreateItem(olDistributionListItem)

objList.DLName = "Mon Groupe"
objList.Save

Set objGroup = GetObject("LDAP://CN=Tous,CN=Users,DC=domaine,DC=local")

For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Set objRecipient = objOutlook.Session.CreateRecipient(strUserName)
objRecipient.Resolve
objList.AddMember objRecipient
Next

----------------------------------------

Merci


Glenn


"Thierry Frache" a écrit dans le message
de


news:O$
Dites-moi exactement ce que vous voulez faire et je devrais pouvoir
vous



aider à concevoir le script qu'il vous faut.

Thierry

P.S.: Vous avez mon email donc à la limite, n'hésitez pas à me
contacter



directement (on gagnera du temps et cela évitera de se prendre des
remarques

du genre "c'est pas le bon endroit pour parler de ça"...).

"Glenn Gagné" wrote in message
news:
Bonjour Thierry,

Merci, effectivement j'ai oublié les "" ... mais uniquement dans le
message
car je les avais bien mis dans mon script.

Après plusieurs tentatives, je me suis rendu compte (en enlevant On
Error


Resume Next...) que le script fonctionne... mais pas avec tous les
CN >> >> > ????





Pourriez-vous essayer de votre côté ceci:

1- J'ai fais comme vous l'essai sur:
Set objGroup >> >> > GetObject("LDAP://CN=Utilisateurs,CN=Builtin,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Et ça fonctionne !!! Sauf que ça popup 4 fenêtres blanches (qui est
égal
au
nombre d'éléments) car le groupe Utilisateurs ne contient aucun nom
d'usagers (strUser) mais d'autres groupes.

2- J'ai fais ensuite:
Set objGroup = GetObject("LDAP://CN­mins du
domaine,CN=Users,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next


Et ça fonctionne !!! Je vois mes utilisateurs avec leur nom... sauf
pour
"Administrateur" ???

3- J'ai fais exactement la même tentative sur le groupe "Utilisa. du
domaine" comme ceci:
Set objGroup = GetObject("LDAP://CN=Utilisa. du
domaine,CN=Users,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Et ça ne marche pas.... !!!! ?????

J'obtiens l'erreur suivante:
Script: C:test.vbs
Ligne: 2
Caract.: 3
Erreur: Cet objet n'est pas une collection.
Code: 800A01C3
Source: Erreur d'exécution Microsoft VBScript

Pourtant il existe vraiment un CN portant le nom "Utilisa. du
domaine",




Il
se pourrait que ce soit à cause du point de le nom ?

4- J'ai alors essayé pour le fun un autre groupe, "KLAdmins" (Admins
des
ress. Kaspersky) qui est un groupe de sécurité Global de la même
manière
que
"Admins du domaine " ou "Utilisa. du domaine" et sans caractères
spéciaux,


voici le résultat:

Set objGroup >> >> > GetObject("LDAP://CN=KLAdmins,CN=Users,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Résultat:
Script: C:test.vbs
Ligne: 2
Caract.: 3
Erreur: Cet objet n'est pas une collection.
Code: 800A01C3
Source: Erreur d'exécution Microsoft VBScript

-----------------------------------------------

Je n'y comprends rien... des fois ça marche et des fois ça ne marche
pas,


je
n'ai pas de faute de frappe et les groupes existent bien...

Avez-vous une idée ?

Merci




"Thierry Frache" a écrit dans le
message




de
news:
Bonsoir Glenn,

pour l'outil, n'importe quel browser ldap peut être utilisé. Les
outils
de
support offrent un outil nommé LDP.EXE. Il permet de parcourir
l'annuaire.

Pour l'erreur du script, vous avez oublié les " à la première
ligne.
Cela



fonctionne chez moi:

Set objGroup >> > GetObject("LDAP://CN=Users,CN=Builtin,DC=mshome,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Thierry

P.S.: La recherche via le carnet d'adresses ne s'applique qu'aux
objets
disposant d'une adresse de messagerie. Pour l'interrogation, vous
pouvez



effectivement utiliser le 389 ou le 3268 (catalogue global).

"Glenn Gagné" wrote in message
news:



Bonjour,

J'essais de diverses manières depuis mon poste de me connecter à
l'Active


Directory de mon domaine via une requête LDAP, mais ça ne marche
pas.




Je
veux créer quelques VB scripts, pour gérer des choses sur mon
domaine,




qui
nécessitent une connexion en LDAP.

Je ne sais pas si je m'y prend mal, mais les exemples de
connexions






que
j'ai
essayé proviennent du site de Microsoft (en grande partie du
Scripting




Guy
!)

Bon ,sans parler de scripts, mais uniquement de connexion LDAP,
est-ce




que
par défaut un serveur Windows Server 2003 SP2 avec Active
Directory






ouvre
les communications LDAP sur le port 389 ?

Est-ce qu'il y a un outil EXE existant permettant de tester la
connectivité
LDAP ?

Est-ce qu'il existe une façon de formuler une requête LDAP très
spécifique,
avez-vous une requête bien banale qui fonctionne à coup sur (du
genre
"sors-moi la liste de tous les utilisateurs du domaine")... ?

Voici commen j'ai tenté l'expérience:

Depuis mon poste client (Windows 2000 SP4):

Dans un script VBS, je tapes:

--------------------
Set objGroup >> > GetObject(LDAP://CN=groupe1,OU=MonOU2,DC=domaine,DC=com)

For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next
----------------------

* Si je ne fais pas d'erreur, je serais supposer voir dans une
fenêtre




un
après l'autre les membres (utilisateurs) de l'unité
d'organisation
(OU)




nommé MonOU2 faisant parti du groupe (CN) nommé groupe1 ???

Il ne m'apparait absolument rien (un echo vide une seule fois) et
pourtant


ce groupe et OU existe.

Si par la suite je tapes la requête LDAP:

LDAP://DC=domaine,DC=com directement dans la barre d'adresse de
Windows




ou
IE et fais ENTER au clavier, j'obtiens la fenêtre de recherche
du
Carnet


d'adresse qui dans le champs de la zone de recherche est écrit:
DC=domaine,DC=com

Si je tapes un nom connus de l'AD, il me dit:

Impossible d'atteindre le service d'annuaire spécifié.

Le service est peut-être provisoirement indisponible ou le nom du
serveur


n'est peut-être par correct.


Si j'essais d'ajouter mon domaine comme service d'annuaire dans
Outlook,
j'ai le même problème...


Bref, je n'ai jamais pu atteindre AD avec LDAP... mais pourtant
je
vois




AD
lorsque je recherche des imprimantes, lorsque je passe par les
Favoris




réseau (sous la forme NTDS://domaine.com/MonOU1)

------------------------------------------


Merci de m'éclairer sur LDAP et AD.

Glenn




























Avatar
Glenn Gagné
... Je sais pas, mais en tout cas c'est moi qui a monté les serveurs ici et
je n'ai pas touché aux configs par défaut. Peut être une particularité entre
la version anglaise de Windows Server et la version française ?

Je peux te confirmer qu'il y a un groupe nommé "Utilisateurs" dans le
conteneur "Builtin" qui contient les groupes "Utilisa. du domaine,
Utilisateurs authentifiés et INTERACTIFS". Tnadisq que j'ai un groupe
"Utilisa. du domaine" dans le conteneur "Users" qui celui-ci contient la
liste des utilisateurs un par un. Et ils y sont ajouté automatiquement
lorsque je créé un nouvel élément de type "utilisateur" que ce soit
n'importe où dans l'arborescence du domaine.

Bref, ça ne règle pas le problème étrange qui se produit avec la requête
LDAP lorsque dirigée vers ce groupe/conteneur. D'ailleurs j'ai pu constater
le même problème, comme mentionné auparavant, avec un autre groupe/conteneur
qui n'a même pas été créé par Windows (mais par Kaspersky Antivirus).

Si on en revient à mon problème de base, est-ce qu'il y a quelque chose qui
cloche dans mon script:

Set objGroup = GetObject("LDAP://CN=Utilisa. du
domaine,CN=Users,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Si j'essais le même script en pointant vers un CN différent comme CN­mins
du domaine ou CN=Test, ... ça fonctionne.


---------------------

Merci

Glenn Gagné





"Thierry Frache" a écrit dans le message de
news:
Je ne pense pas être dans l'erreur:

http://groups.google.fr/group/microsoft.public.windows.server.scripting/browse_thread/thread/ca0c1428e51c1fd/02b4d7abc5821c7f?lnk=st&q=%22domain+users%22+member+vbscript&rnum=7&hl=en#02b4d7abc5821c7f


By default, the "primary" group for users is "Domain Users". Unless you
have

modified this, you can assume that everyone belongs to that group. The
above

script may show that group as empty.

Thierry

"Glenn Gagné" wrote in message
news:
Salut Thierry,

Je crois que tu es dans l'erreur... car c'est le groupe "Utilisateurs"
dans
"Builtin" qui ne référence pas les utilisateurs. Le groupe "Utilisa. du
domaine" dans le conteneur "Users" contient bien la liste des
utilisateurs


(si je regarde dans l'onglet Membres je les vois tous très clairement,
contrairement au groupe Utilisateurs qui contient comme membres:
INTERACTIF,
Utilisa. du domaine et Utilisateurs authentifiés qui celui-ci en passant
ne
cause pas d'erreur et pourtant ne contient pas d'éléments membre de type
utilisateur).

NOTE: Lorsque j'essais le script sur un CN autre qui ne contient pas
d'éléments membre de type "utilisateurs" ils ne sont tout simplement pas
compté... mais ne fais pas apparaitre le message d'erreur " Erreur: Cet
objet n'est pas une collection."

---------------------------

Glenn

"Thierry Frache" a écrit dans le message
de


news:%
L'attribut 'member' du groupe des utilisateurs du domaine (par défaut
'Utilisateurs du domaine') ne référence pas les utilisateurs
du domaine. Par définition, tous les utilisateurs du domaine sont
membres



du
groupe 'Utilisateurs du domaine'. Il en est de même pour
l'attribut 'memberOf' des utilisateurs. Cet attribut ne référence pas
le



groupe du domaine. C'est pour cette raison que cela ne fonctionne pas
avec
le groupe domain users mais que cela marche avec schema admins par
exemple.


Thierry

"Glenn Gagné" wrote in message
news:%
Je suivais le script du Scripting Guy pour trouver tous les
utilisateurs
de
mon domaine afin de créer une liste de distribution dans Outlook avec
ceux-ci... là ça bloque justement si je choisis le groupe (CN) qui
s'appelle
"Utilisa. du domaine"

Temporairement, si je veux, je créé un nouveau groupe "toto" où j'y
inclus


tous les utilisateurs du domaine et ça fonctionne !

Set objGroup > > GetObject("LDAP://CN=toto,CN=Users,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

-----------------------

Je ne vois pas pourquoi que sur certains groupes ça bloque par
contre...
De
plus, en faisant des recherches j'ai vu que la méthode "Set objGroup
GetObject("LDAP://..." avec une boucle sur Member est fréquemment
utilisée


pour plein de choses (entre autre l'authentification dans une page
ASP




des
utilisateurs) ce qui m'intéressera pour plus tard.

Je ne suis pas le genre de personnes, lorsque j'ai trouvé une méthode
alternative temporaire à en rester là, je veux toujours avoir
pourquoi




la
méthode "normal" ne fonctionne pas :o)

------------------------

Même si ça sort du sujet initial (prob de requête LDAP avec AD). Pour
le
script exact en question, le reste du script est remplacé à la fin
(au-lieu
de faire un WScript.Echo strUserName) par:

Set objRecipient = objOutlook.Session.CreateRecipient(strUserName)
objRecipient.Resolve
objList.AddMember objRecipient

Qui encore là fais une erreur sur objList.AddMember !!!! Il va
falloir




que
je sache pourquoi !

pour bien comprendre voici le script complet de la situation:

--------------------------------------


Const olDistributionListItem = 7
Set objOutlook = CreateObject("Outlook.Application")
Set objList = objOutlook.CreateItem(olDistributionListItem)

objList.DLName = "Mon Groupe"
objList.Save

Set objGroup GetObject("LDAP://CN=Tous,CN=Users,DC=domaine,DC=local")

For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Set objRecipient = objOutlook.Session.CreateRecipient(strUserName)
objRecipient.Resolve
objList.AddMember objRecipient
Next

----------------------------------------

Merci


Glenn


"Thierry Frache" a écrit dans le
message




de
news:O$
Dites-moi exactement ce que vous voulez faire et je devrais pouvoir
vous



aider à concevoir le script qu'il vous faut.

Thierry

P.S.: Vous avez mon email donc à la limite, n'hésitez pas à me
contacter



directement (on gagnera du temps et cela évitera de se prendre des
remarques

du genre "c'est pas le bon endroit pour parler de ça"...).

"Glenn Gagné" wrote in message
news:
Bonjour Thierry,

Merci, effectivement j'ai oublié les "" ... mais uniquement dans
le






message
car je les avais bien mis dans mon script.

Après plusieurs tentatives, je me suis rendu compte (en enlevant
On






Error
Resume Next...) que le script fonctionne... mais pas avec tous les
CN > >> >> > ????





Pourriez-vous essayer de votre côté ceci:

1- J'ai fais comme vous l'essai sur:
Set objGroup > >> >> >
GetObject("LDAP://CN=Utilisateurs,CN=Builtin,DC=mondomaine,DC=local")






For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Et ça fonctionne !!! Sauf que ça popup 4 fenêtres blanches (qui
est






égal
au
nombre d'éléments) car le groupe Utilisateurs ne contient aucun
nom






d'usagers (strUser) mais d'autres groupes.

2- J'ai fais ensuite:
Set objGroup = GetObject("LDAP://CN­mins du
domaine,CN=Users,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next


Et ça fonctionne !!! Je vois mes utilisateurs avec leur nom...
sauf






pour
"Administrateur" ???

3- J'ai fais exactement la même tentative sur le groupe "Utilisa.
du






domaine" comme ceci:
Set objGroup = GetObject("LDAP://CN=Utilisa. du
domaine,CN=Users,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Et ça ne marche pas.... !!!! ?????

J'obtiens l'erreur suivante:
Script: C:test.vbs
Ligne: 2
Caract.: 3
Erreur: Cet objet n'est pas une collection.
Code: 800A01C3
Source: Erreur d'exécution Microsoft VBScript

Pourtant il existe vraiment un CN portant le nom "Utilisa. du
domaine",




Il
se pourrait que ce soit à cause du point de le nom ?

4- J'ai alors essayé pour le fun un autre groupe, "KLAdmins"
(Admins






des
ress. Kaspersky) qui est un groupe de sécurité Global de la même
manière
que
"Admins du domaine " ou "Utilisa. du domaine" et sans caractères
spéciaux,


voici le résultat:

Set objGroup > >> >> > GetObject("LDAP://CN=KLAdmins,CN=Users,DC=mondomaine,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Résultat:
Script: C:test.vbs
Ligne: 2
Caract.: 3
Erreur: Cet objet n'est pas une collection.
Code: 800A01C3
Source: Erreur d'exécution Microsoft VBScript

-----------------------------------------------

Je n'y comprends rien... des fois ça marche et des fois ça ne
marche






pas,
je
n'ai pas de faute de frappe et les groupes existent bien...

Avez-vous une idée ?

Merci




"Thierry Frache" a écrit dans le
message




de
news:
Bonsoir Glenn,

pour l'outil, n'importe quel browser ldap peut être utilisé. Les
outils
de
support offrent un outil nommé LDP.EXE. Il permet de parcourir
l'annuaire.

Pour l'erreur du script, vous avez oublié les " à la première
ligne.
Cela



fonctionne chez moi:

Set objGroup > >> > GetObject("LDAP://CN=Users,CN=Builtin,DC=mshome,DC=local")
For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next

Thierry

P.S.: La recherche via le carnet d'adresses ne s'applique qu'aux
objets
disposant d'une adresse de messagerie. Pour l'interrogation, vous
pouvez



effectivement utiliser le 389 ou le 3268 (catalogue global).

"Glenn Gagné" wrote in message
news:



Bonjour,

J'essais de diverses manières depuis mon poste de me connecter
à








l'Active
Directory de mon domaine via une requête LDAP, mais ça ne
marche








pas.
Je
veux créer quelques VB scripts, pour gérer des choses sur mon
domaine,




qui
nécessitent une connexion en LDAP.

Je ne sais pas si je m'y prend mal, mais les exemples de
connexions






que
j'ai
essayé proviennent du site de Microsoft (en grande partie du
Scripting




Guy
!)

Bon ,sans parler de scripts, mais uniquement de connexion LDAP,
est-ce




que
par défaut un serveur Windows Server 2003 SP2 avec Active
Directory






ouvre
les communications LDAP sur le port 389 ?

Est-ce qu'il y a un outil EXE existant permettant de tester la
connectivité
LDAP ?

Est-ce qu'il existe une façon de formuler une requête LDAP très
spécifique,
avez-vous une requête bien banale qui fonctionne à coup sur (du
genre
"sors-moi la liste de tous les utilisateurs du domaine")... ?

Voici commen j'ai tenté l'expérience:

Depuis mon poste client (Windows 2000 SP4):

Dans un script VBS, je tapes:

--------------------
Set objGroup > >> > GetObject(LDAP://CN=groupe1,OU=MonOU2,DC=domaine,DC=com)

For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
strUserName = objUser.displayName
Wscript.Echo strUserName
Next
----------------------

* Si je ne fais pas d'erreur, je serais supposer voir dans une
fenêtre




un
après l'autre les membres (utilisateurs) de l'unité
d'organisation
(OU)




nommé MonOU2 faisant parti du groupe (CN) nommé groupe1 ???

Il ne m'apparait absolument rien (un echo vide une seule fois)
et








pourtant
ce groupe et OU existe.

Si par la suite je tapes la requête LDAP:

LDAP://DC=domaine,DC=com directement dans la barre d'adresse de
Windows




ou
IE et fais ENTER au clavier, j'obtiens la fenêtre de recherche
du
Carnet


d'adresse qui dans le champs de la zone de recherche est écrit:
DC=domaine,DC=com

Si je tapes un nom connus de l'AD, il me dit:

Impossible d'atteindre le service d'annuaire spécifié.

Le service est peut-être provisoirement indisponible ou le nom
du








serveur
n'est peut-être par correct.


Si j'essais d'ajouter mon domaine comme service d'annuaire dans
Outlook,
j'ai le même problème...


Bref, je n'ai jamais pu atteindre AD avec LDAP... mais pourtant
je
vois




AD
lorsque je recherche des imprimantes, lorsque je passe par les
Favoris




réseau (sous la forme NTDS://domaine.com/MonOU1)

------------------------------------------


Merci de m'éclairer sur LDAP et AD.

Glenn