Bonjour à tous,
Je me dirige vers vous car après avoir explorés pas mal de sites, tuto, exemples, ... je suis toujours confronté à mon problème.
Petite explication :
J'ai une machine qui tourne en serveur 2008 R2 et qui héberge un active directory.
A partir d'une autre machine, je veux alimenter l'active directory. Tout fonctionne SAUF la partie mot de passe : impossible de fixer un mot de passe, j'obtiens systématiquement une erreur.
Lors de la création de mon nouvel utilisateur, j'enregistre bien les changements avant de lui attribuer un mot de passe.
J'ai essayé une méthode avec System.DirectoryServices dont voici le code :
Dès que j'arrive sur user.invoke, bim message d'erreur : une exception a été levée par la cible d'un appel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Dim ldap As DirectoryEntry = New DirectoryEntry("LDAP://192.168.1.2:389/OU=test,DC=domaine, DC=com", "nomdutilisateur", "motdepasse") Dim user As DirectoryEntry = ldap.Children.Add("cn=Henri Dupont", "user") user.Properties("SamAccountName").Add("henri.dupont") user.Properties("UserPrincipalName").Add("henri.dupont@domain.com") user.Properties("sn").Add("Dupont") user.Properties("givenName").Add("Henri") user.Properties("description").Add("Compte de test") user.CommitChanges() user.Invoke("SetPassword", New Object() {"MDPUtilisateur"}) 'user.CommitChanges()
Là où c'est étrange c'est que mon utilisateur a bien été créé mais bien sur sans mot de passe donc ma connexion et création est correct...
J'ai aussi essayé par System.DirectoryServices.AccountManagement avec le code suivant :
J'obtiens également un message d'erreur mais différent : le serveur rpc n'est pas disponible (HRESULT : 0x800706BA)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Dim domainContext As PrincipalContext = New PrincipalContext(ContextType.Domain, "192.168.1.2:389", "OU=test,DC=domaine, DC=com", "nomdutilisateur", "motdepasse") Dim user2 As UserPrincipal = UserPrincipal.FindByIdentity(domainContext, IdentityType.SamAccountName, "henri.dupont") MsgBox(user2.GivenName) user2.SetPassword("lemotdepasse")
le msgbox est uniquement là pour vérifier que ma connexion et recherche est correcte et c'est bien le cas.
Si vous avez une idée, je suis preneur ....
Merci d'avance
Partager