Active directory

apache88 Messages postés 78 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 19 mars 2014 - 24 juil. 2007 à 09:25
apache88 Messages postés 78 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 19 mars 2014 - 24 juil. 2007 à 10:30
Bonjour,

J'ai un petit soucis avec un programme que je fais.... Pour ceux qui sont déjà au courant, il s'agit toujours de mon fameux programme de scan active directory et qui enregistres des informations dans un fichier excel.

Code VB .NET (Codé sous Microsofft Visual Basic 2005 express edition):

Imports

System.Reflection

Imports System.DirectoryServices
Module

Module1

Sub Main()

Dim User = InputBox(
"Veuillez entrer le nom d'utilisateur")

Dim Password = InputBox(
"Veuillez entrer le mot de passe du compte " + User)

Dim Ldap
As DirectoryEntry =
New DirectoryEntry(
[ldap://NOMDUSERVEUR/ LDAP://NOMDUSERVEUR], User, Password)

Dim searcher
As DirectorySearcher =
New DirectorySearcher(Ldap)

Dim DirEntry
As DirectoryEntry

Dim excel
As
New Excel.Application

Dim wb
As Excel.Workbook

Dim ws
As Excel.Worksheet

Dim Li
As
Longsearcher.Filter =

"(objectClass=organizationalUnit)(objectClass=user)"excel.Visible =

True
'la fenêtre excel est visible
wb = excel.Workbooks.Add(1)
'on ouvre un classeur dans excel
ws = wb.Worksheets(1)
'on ouvre une feuille dans le classeur excel
Li = 1

For
Each result
As SearchResult
In searcher.FindAll

' On récupère l'entrée trouvée lors de la recherche
DirEntry = result.GetDirectoryEntry

Dim a = DirEntry.Properties(
"SAMAccountName").Value

Dim b = DirEntry.Properties(
"sn").Value

Dim c =
"Tél : " + DirEntry.Properties(
"TelephoneNumber").Value
ws.Range(
"A" & Li).Value = a
ws.Range(
"A" & (Li + 1)).Value = b
ws.Range(
"A" & (Li + 2)).Value = c
Li = Li + 4

Nextwb.SaveAs(

"C:\liste_contact.xls")

End
SubEnd

Module

Mon premier problème est le suivant:

Mon programme scan absolument tout l'acitve directory! et moi je voudrait qu'il scan uniquement une OU!

Arborescence Active directory:

Users
      =>OU1
      =>OU2
      =>OU3

L'OU Users est pa défaut comme vous l'auriez certainement deviner et j'ai créer différentes "sous-OU". Je voudrais pouvoir scanner uniquement OU1 par exemple. J'ai essayer de mettre:
Dim Ldap
As DirectoryEntry =
New DirectoryEntry("
[ldap://NOMDUSERVEURou=OU1 LDAP://NOMDUSERVEURou=OU1]", User, Password)
A la place de:
Dim Ldap
As DirectoryEntry =
New DirectoryEntry(
[ldap://SVRFRDC01/ LDAP://NOMDUSERVEUR]", User, Password)

Mais j'ai une erreur:
"L'exception DirectoryServicesCOMException n'a pas été gérée
an in valid dn syntax has been specified."

Il me met cette erreur à la ligne:
For

Each result
As SearchResult
In searcher.FindAll

Quelqu'un aurait-il une idée?

2ème problème:

Le fichier qui est enregistré sur le C ne s'affiche pas correctement quand je l'ouvre... voyez plutot:

http://img248.imageshack.us/my.php?image=imgqz4.png

Si quelqu'un à déjà eu à faire à ce problème...

Merci d'avance

2 réponses

apache88 Messages postés 78 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 19 mars 2014
24 juil. 2007 à 09:27
Petite Erreur:

J'ai déjà essayé de mettre:
Dim Ldap As DirectoryEntry = New DirectoryEntry("[ldap://NOMDUSERVEUR/ou=OU1 LDAP://NOMDUSERVEUR/ou=OU1]"
, User, Password)
0
apache88 Messages postés 78 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 19 mars 2014
24 juil. 2007 à 10:30
J'ai trouvé un intermédiaire à mon premier problème donc ça serait le deuxième problème le plus important à règler...

N'hésiter pas si vous avez une idée

Merci
0
Rejoignez-nous