j'ai fait comme tu m'a dit et lorsque j'appuie sur le bouton, il me mets : THERE IS NO SUCH OBJECT ON THE SERVER. Il doit y avoir un problème dans mon chemin LDAP ou mon couple login/mot de passe
Dim listeUserOUArcole As ArrayList = getUsersOU("OU=test,OU=Utilisateurs,DC=masociete,DC=ouest,DC=fr", "login", "motdepasse")
Sinon j'ai une autre fonction pour changer le nom de mon ordi mais ca ne fonctionne qu'avec le nom Netbios :
1 2 3 4 5 6 7 8 9 10 11 12
| Declare Function SetComputerName Lib "kernel32" Alias "SetComputerNameA" (ByVal lpComputerName As String) As Long
Public Function ChangerNomOrdi(ByVal NouveauNomOrdi As String) As Boolean
On Error Resume Next
Dim Changer As Long
Changer = SetComputerName(NouveauNomOrdi)
If Err.Number = 0 Then
ChangerNomOrdi = True
Else
ChangerNomOrdi = False
End If
End Function |
Une autre pour récupérer les comptes utilisateurs contenus dans une OU :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| Public Function getUsersOU(ByVal monCheminLdapRecherche As String, _
ByVal monUsername As String, _
ByVal monpassword As String) As ArrayList
' ArrayList qui va contenir le résultat retourné par la recherche
Dim maListeUsers As New ArrayList
Try
' Instanciation d'un objet DirectorySearcher
' Définition de l'emplacement de recherche
Dim monEmplacementRecherche As New DirectoryEntry("LDAP://" & _
monCheminLdapRecherche, monUsername, monpassword, AuthenticationTypes.Secure)
Dim maRecherche As New DirectorySearcher(monEmplacementRecherche)
' dureeMax initisalisée à 25 secondes
Dim dureeMax As New TimeSpan(0, 0, 25)
' Emplacement où la recherche doit être effectuée
' dans la hiérarchie Active Directory
maRecherche.SearchRoot = monEmplacementRecherche
' Définition du Scope de la recherche, ici le conteneur
' seulement et tous ses "sous conteneur"
maRecherche.SearchScope = SearchScope.Subtree
' Filtre uniquement les objets de type "user"
maRecherche.Filter = "(objectClass=user)"
' Détermination de la propriété à récupérer lors de la recherche
maRecherche.PropertiesToLoad.Add("sAMAccountName")
' Durée maximum de la recherche
maRecherche.ServerTimeLimit = dureeMax
' Fixe le nombre maximum d'objets retournés
maRecherche.SizeLimit = 1500
Dim unUtilisateur As DirectoryServices.SearchResult
' Récupération du 'sAMAccountName' des utilisateurs récupérés
For Each unUtilisateur In maRecherche.FindAll()
maListeUsers.Add(unUtilisateur.GetDirectoryEntry.Properties.Item("sAMAccountName").Value.ToString)
Next
monEmplacementRecherche.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Return maListeUsers
End Function |
Partager