2009-10-06 4 views

Répondre

1

Ajouter des références pour la bibliothèque de type ActiveDS et ADO à votre projet.

 
Sub GetDomains() 
    Dim objRootDSE As IADs 
    Dim objBase As IADs 
    Dim path As String 
    Dim rsDomains As ADODB.Recordset 
    Dim cnADS As ADODB.Connection 
    Dim cmdCommand As ADODB.Command 

    Set objRootDSE = GetObject("LDAP://rootDSE") 
    path = "LDAP://" & objRootDSE.Get("rootDomainNamingContext") 
    Set objBase = GetObject(path) 

    Set cnADS = New ADODB.Connection 
    cnADS.Provider = "ADsDSOObject" 
    cnADS.Open "ADSI" 

    Set cmdCommand = New ADODB.Command 
    cmdCommand.ActiveConnection = cnADS 
    cmdCommand.Properties("searchScope") = ADS_SCOPE_SUBTREE 
    cmdCommand.CommandText = "SELECT Name, distinguishedName FROM '" & objBase.ADsPath & "' WHERE objectCategory = 'domain'" 
    Set rsDomains = cmdCommand.Execute 

    Do While rsDomains.EOF = False 
     List1.AddItem (rsDomains!Name) 
     rsDomains.MoveNext 
    Loop 

End Sub 

J'ai seulement un domaine pour tester cette contre donc j'espère que vous aurez besoin de me faire savoir si elle obtient tous les domaines pour vous. Veuillez également noter, Je n'ai pas ajouté le traitement des erreurs.

Questions connexes