Nbre de bal Exchange dans l'AD

Le
Grincheux
Bonjour,

Je souhaite récupérer le nombre de boîtes ax lettres Exchange via une
requête LDAP dans un AD sous W2K.
Si quelqu'un connait la manip., je suis preneur.

Merci d'avance.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Thierry DEMAN [MVP]
Le #674387
Bonsoir,

voici un petit exemple de Vbscript (à définir en .VBS):



' Auteur: Thierry DEMAN (BY THE WAY)
' -------------------------------------------------------------------------------------------------------------
' Fonctionnement: Comptage des Utilisateurs possédant une boîte dans le
domaine courant!
' -------------------------------------------------------------------------------------------------------------
'************************** VARIABLES SYSTEMES **************************
Dim user, computer
Dim u
Dim oRootDSE,strDomainNC
Dim oConnection,oRecordset
' ------------------------------------- DEBUT DE
PROGRAMME -------------------------------------------


' Recherche du domaine Active Directory courant, on peut aussi forcer la
valeur !
Set oRootDSE = GetObject("LDAP://RootDSE")
strDomainNC = oRootDSE.Get("defaultNamingContext")

' Affichage facultative du domaine déterminé
'msgbox(StrDomainNC)
u=0

' Connexion de type base de donnée à Active Directory
Set oConnection = CreateObject("ADODB.Connection")
oConnection.Provider = "ADsDSOObject"
oConnection.Open "ADs Provider"

' Définition de la recherche principale
' Tous les utilisateurs et tous les contacts, dans tous les niveaux de l’arborescence.
Set oRecordset =
oConnection.Execute("<GC://"+StrDomainNC+">;(objectCategory=user);name,HomeMdb;subtree")

' Boucle sur les enregistrements.
If Not oRecordset.EOF Then
While Not oRecordset.EOF

' Attention les champs vides (Null) ne peuvent pas être concaténés en chaine
de caractères
' Il faut donc les vérifier
Name=VerifyNull(oRecordset.Fields("Name"))
HomeMdb=VerifyNull(oRecordset.Fields("HomeMdb"))
If Len(HomeMdb)>0 Then
u=u+1
' Wscript.echo Name+","+HomeMdb
End if

oRecordset.movenext
Wend
End If

wscript.echo "Nombre de boîtes :" +Cstr(u)

wscript.quit


' ********* FIN DE PROGRAMME ***********

' Fonctions...

Function VerifyNull(field)
IF not (isnull(Field)) Then
VerifyNull=Field
Else
VerifyNull=""
End IF
End Function
'------------------------------------------------------------------------------------------------------

--
Thierry DEMAN-BARCELÒ
Exchange MVP, MCSE2003+M,MCSE2003+S,MCDBA,MCITP dba&Dev
http://base.faqexchange.info http://www.faqexchange.info
http://ISAFirewalls.org

"Grincheux" news:
Bonjour,

Je souhaite récupérer le nombre de boîtes ax lettres Exchange via une
requête LDAP dans un AD sous W2K.
Si quelqu'un connait la manip., je suis preneur.

Merci d'avance.


Grincheux
Le #679469
Bonjour,

Merci à toi. C'est nickel et cela répond complètement à mes attentes.

Arno.


Bonsoir,

voici un petit exemple de Vbscript (à définir en .VBS):



' Auteur: Thierry DEMAN (BY THE WAY)
' -------------------------------------------------------------------------------------------------------------
' Fonctionnement: Comptage des Utilisateurs possédant une boîte dans le
domaine courant!
' -------------------------------------------------------------------------------------------------------------
'************************** VARIABLES SYSTEMES **************************
Dim user, computer
Dim u
Dim oRootDSE,strDomainNC
Dim oConnection,oRecordset
' ------------------------------------- DEBUT DE
PROGRAMME -------------------------------------------


' Recherche du domaine Active Directory courant, on peut aussi forcer la
valeur !
Set oRootDSE = GetObject("LDAP://RootDSE")
strDomainNC = oRootDSE.Get("defaultNamingContext")

' Affichage facultative du domaine déterminé
'msgbox(StrDomainNC)
u=0

' Connexion de type base de donnée à Active Directory
Set oConnection = CreateObject("ADODB.Connection")
oConnection.Provider = "ADsDSOObject"
oConnection.Open "ADs Provider"

' Définition de la recherche principale
' Tous les utilisateurs et tous les contacts, dans tous les niveaux de l’arborescence.
Set oRecordset =
oConnection.Execute("<GC://"+StrDomainNC+">;(objectCategory=user);name,HomeMdb;subtree")

' Boucle sur les enregistrements.
If Not oRecordset.EOF Then
While Not oRecordset.EOF

' Attention les champs vides (Null) ne peuvent pas être concaténés en chaine
de caractères
' Il faut donc les vérifier
Name=VerifyNull(oRecordset.Fields("Name"))
HomeMdb=VerifyNull(oRecordset.Fields("HomeMdb"))
If Len(HomeMdb)>0 Then
u=u+1
' Wscript.echo Name+","+HomeMdb
End if

oRecordset.movenext
Wend
End If

wscript.echo "Nombre de boîtes :" +Cstr(u)

wscript.quit


' ********* FIN DE PROGRAMME ***********

' Fonctions...

Function VerifyNull(field)
IF not (isnull(Field)) Then
VerifyNull=Field
Else
VerifyNull=""
End IF
End Function
'------------------------------------------------------------------------------------------------------

--
Thierry DEMAN-BARCELÒ
Exchange MVP, MCSE2003+M,MCSE2003+S,MCDBA,MCITP dba&Dev
http://base.faqexchange.info http://www.faqexchange.info
http://ISAFirewalls.org

"Grincheux" news:
Bonjour,

Je souhaite récupérer le nombre de boîtes ax lettres Exchange via une
requête LDAP dans un AD sous W2K.
Si quelqu'un connait la manip., je suis preneur.

Merci d'avance.





Publicité
Poster une réponse
Anonyme