ASP et Active Directory [Résolu]

Signaler
Messages postés
43
Date d'inscription
jeudi 6 mai 2004
Statut
Membre
Dernière intervention
17 septembre 2008
-
Messages postés
43
Date d'inscription
jeudi 6 mai 2004
Statut
Membre
Dernière intervention
17 septembre 2008
-
Coucou :)

Alors voilà j'ai un code qui fonctionne a peu près bien mais j'ai toutefois un problème qui me casse les bonbons.
Voici le code :

<%@ Language=VBScript %>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>

<%Dim Domaine
Dim Ordinateur
Set Domaine = getobject("WinNT://MonDomaine")
Domaine.Filter = Array("Computer")%>
<%for each Ordinateur in Domaine
Nom = Ordinateur.Name
Description = Ordinateur.Description%>
----
<%=Nom%>,
----
<%=Description%>,
<%next%>

<%Set Domaine = Nothing%>

</HTML>

Et ca plante à la ligne :
Description = Ordinateur.Description

En me générant une erreur de type :
Active Directory error '8000500d'
La propriété répertoire n'est pas présente dans le cache

Voilà ... Le truc c'est que ca marche pour la plupart des autre propriétés que l'on pourrait mettre mais pas pour la description...
Et moi c'est ce champ que je veux !!!

Si quelqu'un à une idée il est le bienvenue.

3 réponses

Messages postés
43
Date d'inscription
jeudi 6 mai 2004
Statut
Membre
Dernière intervention
17 septembre 2008
1
Bon bah en fait j'ai trouvé ;)

Ma démarche pour trouver :
Installer ADSIEDIT.msc qui vous permet d'avoir tout les chemins LDAP de vos objet active directory.

Ensuite j'ai repéré le chemin LDAP de l'objet qui chez nous contenait tout les ordis et voilà .
!!! Attention généraleemnt les AD sont organiser par unité d'organisation (genre Compta avec dedans liste des users et liste des pc appartenant a la compta) Chez nous c'est un peu spécial on a mis tout les pc dans une UO à part qui s'appelle computers ;)

Voilà le code pour moi : (qui me liste les ordi + la description des ordi)

Set Domaine = GetObject("LDAP://serveurDNS.mondomaine.fr/CN=Computers,DC=mondomaine,DC=fr")
For Each ordi In Parcinfo
MsgBox ordi.name & " " & ordi.Description
Next

Si vous avez des pc éparpillé dans plusieurs UO alors il vous faut prendre le chemin LDAP le plus haut puis filtrer sur les objet de type Computer. Comme ca :

Set ToutAD = GetObject("LDAP://serveurDNS.mondomaine.fr/DC=mondomaine,DC=fr")

For Each OU In ToutAD
Set ordinateurs = GetObject("LDAP://srvfichiers.mont-blanc.local/" & OU.Name & ",DC=mont-blanc,DC=local")
For Each ordi In ordinateurs
If ordi.Class = "computer" Then
MsgBox ordi.Name
End If
Next
Next

!!!! Notez que pour que ca fonctionne sur votre environnement il vous faudra trouver votre bon chemin LDAP grace a ADSIEDIT!!!

Perso j'ai trouvé les infos dans msdn 2001.
Le topic s'appelle "Easy Access to Active Directory using ADSI"
LOL => J'aime bien le nom des topic chez microsoft

@++ et en espérant que ca en aide quelques-uns
Messages postés
46
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
18 septembre 2006

Merci pour ta question/réponse, elle m'a bien été utile.
Messages postés
43
Date d'inscription
jeudi 6 mai 2004
Statut
Membre
Dernière intervention
17 septembre 2008
1
Tant mieux si ca ta servi

Perso j'ai cherché longtemps pour trouver ...
Et vu la gueule du nom des topics sur MSDN il faut du courage pour trouver ce que l'on cherche...

@llez Bonne prog