Je n'ai pas trouvé de code VB sur le site expliquant comment accèder aux propriétés réseau d'un compte (en particulier la date d'expiration d'un mot de passe)
Voilà donc toutes les explications à travers cet exemple pour connaitre la date d'expiration, le nom de la personne, la date de dernière connexion réseau, les tentatives de connexions infructueuses, etc ... de n'importe quel compte du réseau.
Source / Exemple :
Private Sub CmdGo_Click()
' nécessite que l'ADSI 2.5 (Active Directory Server Interface) soit installé
' (elle l'est automatiquement sous win2000, demande l'installation du driver adsi98.exe sous win9x)
' (à télécharger sur http://www.microsoft.com/Windows95/downloads/contents/WUOther/ADSI25/Default.asp)
' ADSI - SDK : registrer ADsSecurity.dll (fourni dans le zip) pour la programmation quelque soit votre version de Windows (pas nécessaire pour l'exécution)
' réferences projet à ajouter : Active DS Typer Library, ADsSecurity 2.5 Type Library
Dim owinnt As ActiveDs.IADs
Dim age_max As Long
Dim age_pwd As Long
Dim date_expi As String
If TxtDomaine.Text = "" Or TxtLogin.Text = "" Then
MsgBox "Nom de domaine et/ou de login non renseigné(s)", vbCritical, "INFORMATIONS MANQUANTES"
Else
On Error Resume Next
Set owinnt = CreateObject("WinNT://" & TxtDomaine.Text & "/" & TxtLogin.Text)
If Err = 429 Then
' login inexistant
MsgBox "Le login " & TxtLogin.Text & " est inexistant dans le domaine " & TxtDomaine.Text, vbCritical, "LOGIN INCONNU"
On Error GoTo 0
Else
' les propriétés atteignables sont : LoginHours, Description, LoginScript, FullName, AccountExpirationDate
' BadPasswordAttempts, HomeDirDrive, HomeDirectory, LastLogin, LastLogoff, PasswordHistoryLength, LoginWorkstations
' MaxLogins, MaxPasswordAge, MaxStorage, MinPasswordAge, MinPasswordLength, PasswordAge, PasswordExpired
On Error GoTo 0
age_max = CLng(owinnt.Get("MaxPasswordAge")) / 60 / 60 / 24 ' durée de validité du mot de passe
age_pwd = CLng(owinnt.Get("PasswordAge")) / 60 / 60 / 24 ' durée écoulée
date_expi = CDate(Date + (age_max - age_pwd))
MsgBox "Le login " & TxtLogin.Text & " expire le " & date_expi
End If
End If
End Sub
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.