NTFAQFr DépartNewsDiscussion AreaLinksrechercheSpaceHelp

Q. Comment rechercher dans l'annuaire global d'exchange a partir d'un serveur IIS 4.0 ?

A. C'est parfaitement possible en utilisant l'Active Directory Service interface .(ADSI) , plus d'infos a
 http://www.microsoft.com/windows2000/library/howitworks/activedirectory/adsilinks.asp

Il faut d'abord disposer d'un serveur NT 4.0 Sp5 , IIS 4.0 , puis y rajouter l'extension ADSI

Voici un exemple de code ASP qui explique comment lire l'annuaire exchange global.

Pensez a remplacer Monserveurexchange et DomaineserveurExchange par les IP ou nom correspondant.

==============debut de la page

<%@ LANGUAGE="VBSCRIPT" %>
<
%Response.Expires=0%>

<html>

<% '---------------------------------------------------------------------

' Debut de l'asp elle meme , tous ca généreusement inspiré des travaux
' de  Ian Morrish sur Wsh.

'---------------------------------------------------------------------

Const ADS_SCOPE_SUBTREE=2

'---------------------------------------------------------------------

' traite l'arrivée de la variable

' origine form ou string

'---------------------------------------------------------------------

If request.queryString("nom") <> "" then

searchAlias = UCASE(request.queryString("nom"))

End If

If request.Form("nom") <> "" then

searchAlias = UCASE(request.Form("nom"))

End If

'--------------------------------------------------------------------

'  Tapez ici l'adresse de votre serveur

' -------------------------------------------------------------------

exchServer = "Monserveurexchange"

Set con = CreateObject("ADODB.Connection")

Set Com = CreateObject("ADODB.Command")

' Ouvre la connection

con.Provider = "ADsDSOObject"

 

'---------------------------------------------------------------------

' Pour etre authentifié précisé ici un nom de compte robot

' qui doit appartenir au groupe Administrateur

'---------------------------------------------------------------------

con.Properties("User ID") = "DOmaineNT\RobotLdap"

con.Properties("Password") = "motdepasse"

con.Properties("Encrypt Password") = True

'------------------------------------

' Ouvre la connection

'-------------------------------------

con.Open "Active Directory Provider"

' Lance la commande

Set Com.ActiveConnection = con

'--------------------------------------------------

' Fixe les parametres de la requete LDAP

'---------------------------------------------------

adsPath = "LDAP://" & exchServer & "/o=domaineduserveurexchange"

Com.CommandText = "select ADsPath, title, givenName, sn, telephoneNumber, Department from '" & adsPath & "' where sn='" & searchAlias & "*'"

'-----------------------------------------

'Fixes les préférences

'--------------------------------------

Com.Properties("Page Size") = 100

Com.Properties("Timeout") = 30 ' c'est des secondes

Com.Properties("searchscope") = ADS_SCOPE_SUBTREE 'Definit parADS_SCOPEENUM

Com.Properties("Cache Results") = False ' pas de mise en cache du resultat (economie de memoire)

'--------------------------------------------

'Execute la requete

'--------------------------------------------

Set rs = Com.Execute

'--------------------------------------

' affiche le record set

'----------------------------------------

If rs.BOF and rs.EOF Then%>

<h2 align="center"><font face="Arial">Désolé

, Aucun résultat! </font></h2>

<p><%Else

' avant - arriere

rs.MoveLast

rs.MoveFirst%> </p>

<table BORDER="1">

<tr>

<th align="center"><font face="Arial"><small>Service </small></font></th>

<th align="center"><font face="Arial"><small>civilité </small></font></th>

<th align="center"><font face="Arial"><small>Prénom </small></font></th>

<th align="center"><font face="Arial"><small>Nom </small></font></th>

<th align="center"><font face="Arial"><small>Téléphone </small></font></th>

</tr>

<% Do while not rs.EOF if ( rs.EOF = False ) then %>

<tr>

<td align="center"><%=rs.Fields("Department").Value%>

</td>

<td align="center"><%=rs.Fields("Title").Value%>

</td>

<td align="center"><%=rs.Fields("givenName").Value%>

</td>

<td align="center"><%=rs.Fields("sn")%>

</td>

<td align="center"><%=rs.Fields("telephoneNumber").Value%>

</td>

</tr>

<% end if %>

<% rs.MoveNext %>

<% Loop %>

</table>

<%End If%>

</table>

</table>

</body>

</html>

==============fin de la page