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 :
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()
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 :
The server is unwilling to process the request.
J'ai cherché pas mal sur le net, mais rien trouvé de satisfaisant...

Merci d'avance.
Gurdil