C'est en fait un peu plus compliqué qu'il n'y paraît à première vue...
- Pour connaître la durée de validité d'un mot de passe, vous devez lire une "politique de domaine" et la découvrir de cette manière.
Ensuite :
- si l'utilisateur a le drapeau "UF_DONT_EXPIRE_PASSWD" dans son "userAccountControl", son mot de passe n'expirera jamais
- si la valeur "pwdLastSet" (une valeur "ADSLargeInteger" ou Int64, qui est assez difficile à lire) est 0, l'utilisateur devra changer son mot de passe lors de sa prochaine connexion.
- si la valeur "pwdLastSet" est -1, le mot de passe n'a jamais été défini
- seulement si aucune des valeurs ci-dessus n'est vraie, la valeur "pwdLastSet" contient la date à laquelle le mot de passe a été défini pour la dernière fois, à laquelle vous pouvez ajouter la valeur "MaxPasswordAge" de la politique du domaine, ce qui vous donnera la date à laquelle le mot de passe de l'utilisateur va expirer.
Ouf ! Vous pensiez que ce serait aussi difficile ? :-)
Marc
PS : Si vous vous intéressez sérieusement à la programmation AD basée sur .NET, vous devez posséder ce livre :
![DevGuide]()
Le guide du développeur .NET pour la programmation des services d'annuaire
Le livre contient toutes les informations utiles, comme la détermination des dates d'expiration des mots de passe des utilisateurs, la détermination de l'état de verrouillage des comptes utilisateurs et bien d'autres choses encore - à recommander vivement ! Joe et Ryan ont fait un travail remarquable en rassemblant toutes ces informations et en les expliquant de manière à ce que même un programmeur moyen comme moi puisse les comprendre :-)