Auteur de questions
Modification mot de passe compte Active Directory

Discussion générale
-
Bonjour,
Dans une application ASP.NET/C# développée sous Windows 7 et Visual Studio 2008, j'essaye de modifier le mot de passe d'un compte Active Directory :
public bool CreateUser (string prmADDomaine, string prmADOUPath, string prmADAdmin, string prmADAdminPwd) { bool ret = false; try { string wPath = @"LDAP://" + prmADDomaine + @"/" + prmADOUPath; DirectoryEntry dirEntryOU = new DirectoryEntry (wPath,prmADAdmin, prmADAdminPwd); DirectoryEntry dirEntryUsr = dirEntryOU.Children.Add ("CN=" + this.AD_MatriVDN, "user"); dirEntryUsr.Properties["sAMAccountName"].Add (this.AD_MatriVDN); DirEntryPropCreat (dirEntryUsr, this.AD_NomUser, "sn"); DirEntryPropCreat (dirEntryUsr, this.AD_PrenomUser, "givenName"); DirEntryPropCreat (dirEntryUsr, this.AD_PresentationName, "displayName"); DirEntryPropCreat (dirEntryUsr, this.AD_ServiceUser, "description"); dirEntryUsr.CommitChanges (); int curVal = (int) dirEntryUsr.Properties["userAccountControl"].Value; curVal = curVal & ~(int) ADS_USER_FLAG.ADS_UF_ACCOUNTDISABLE & ~(int) ADS_USER_FLAG.ADS_UF_PASSWD_NOTREQD; dirEntryUsr.Properties["userAccountControl"].Value = curVal; dirEntryUsr.Properties["accountExpires"].Value = GetLargeIntegerFromDateTime (this.AD_DateExpire); dirEntryUsr.Invoke ("setPassword", new object[] { this.AD_MotPasse }); dirEntryUsr.CommitChanges (); ..... ret = true; } catch (Exception ex) { ...... } return ret; }
}J'obtiens un message d'erreur : "Une exception a été levée par la cible d'un appel" sur la ligne :
dirEntryUsr.Invoke ("setPassword", new object[] { this.AD_MotPasse });
Après maintes recherches infructueuses sur Internet, j'ai exécuté le même projet avec la même version de Visual Studio 2008, mais sur des machines avec Windows XP, et le code fonctionne.
J'en déduis que le problème intervient au niveau dy système ?...
Existe-t-il une explication ou une solution pour faire fonctionner ce code sous Windows 7 ?Par avance merci,
- Modifié the_muton mercredi 7 novembre 2012 14:04 Clarté du message
Toutes les réponses
-
Vous utilisez le même compte utilisateur sur XP et Windows 7 ?
Ça peut être un problème des droits sur l’AD.
Aussi, on a besoin de verifier Exception.InnerException. Ça peut nous donner un plus d’info sur l’erreur.
Aussi essayez SetPassword avec majuscule.
Cordialement,
-
Bonjour,
Est-ce que vous avez testé les solutions proposées ? Merci de partager avec nous les résultats, afin que d'autres personnes avec le même problème puissent profiter de cette solution.
Cordialement,
Aurel