Bonjour bonjour,
Je rencontre un soucis pour créer des comptes dans l'AD avec .Net.
En fait j'aimerais créer un compte à partir de compte "type" pour avoir les bonnes propriétés et modifier simplement quelques propriétés pour le nouveau compte (nom, login, description...)
Voici mon code :
Pour moi c'était pas mal, mais sur le CommitChanges (pour enregistrer le compte donc), il me pète une exception du type DirectoryServicesCOMException avec le message suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Dim Ldap As DirectoryEntry = New DirectoryEntry(ConfigurationManager.AppSettings("domainName"), ConfigurationManager.AppSettings("domainLog"), ConfigurationManager.AppSettings("domainPswd")) 'Récupération de l'AD 'Récupération du compte type Dim searcher As DirectorySearcher = New DirectorySearcher(Ldap) searcher.Filter = "(objectClass=user)" searcher.Filter = "(SAMAccountName=" & ConfigurationManager.AppSettings("baseAccountPrefix") & acc.Service & "_rec)" Dim result As SearchResult = searcher.FindOne() Dim DirEntry As DirectoryEntry = result.GetDirectoryEntry() Dim newDirEntry As DirectoryEntry = Ldap.Children.Add("cn=" & acc.Login.ToLower, "user") 'Ici je copie toutes les propriétés de mon compte type dans le nouveau compte For Each propName As String In DirEntry.Properties.PropertyNames For Each proValue As Object In DirEntry.Properties(propName) If newDirEntry.Properties.Contains(propName) Then newDirEntry.Properties(propName).Value = proValue Else newDirEntry.Properties(propName).Add(proValue) End If Next Next 'J'assigne les nouvelles valeurs dans les bonnes propriétés newDirEntry.Properties("SAMAccountName").Value = acc.Login newDirEntry.Properties("sn").Value = acc.LastName newDirEntry.Properties("givenName").Value = acc.FirstName newDirEntry.Properties("description").Value = acc.Description newDirEntry.CommitChanges()J'ai cherché pas mal sur le net, mais rien trouvé de satisfaisant...The server is unwilling to process the request.
Merci d'avance.
Gurdil
Partager