Cómo obtener la fecha de caducidad de contraseña mediante el proveedor de LDAP ADSI

Resumen

Este artículo contiene código de ejemplo que muestra cómo utilizar el proveedor ADSI LDAP para obtener la fecha de caducidad de la contraseña de un usuario de Active Directory.

Más información

Este artículo contiene código de ejemplo para los siguientes programas:
  • Visual Basic
  • VBScript

Código de ejemplo de Visual Basic

Para utilizar el siguiente código de ejemplo de Visual Basic, debe agregar la Biblioteca de tipos Active DS a la referencia del proyecto.

        '========================================
' First, get the domain policy.
'========================================
Dim oDomain As IADsContainer
Dim oUser As IADsUser
Dim maxPwdAge As LargeInteger

'========================================
' Declaring numDays as Currency, due to a
' large number calculation.
'========================================
Dim numDays As Currency

strDomainDN = "YOURDOMAIN"
strUserDN = strDomainDN & "/CN=John Doe,CN=Users,DC=YOURDOMAIN,DC=COM"

Set oDomain = GetObject("LDAP://" & strDomainDN)
Set maxPwdAge = oDomain.Get("maxPwdAge")

'========================================
' Calculate the number of days that are
' held in this value.
'========================================
numDays = ((maxPwdAge.HighPart * 2 ^ 32) + _
maxPwdAge.LowPart) / -864000000000@
Debug.Print "Maximum Password Age: " & numDays

'========================================
' Determine the last time that the user
' changed his or her password.
'========================================
Set oUser = GetObject("LDAP://" & strUserDN)

'========================================
' Add the number of days to the last time
' the password was set.
'========================================
whenPasswordExpires = DateAdd("d", numDays, oUser.PasswordLastChanged)

Debug.Print "Password Last Changed: " & oUser.PasswordLastChanged
Debug.Print "Password Expires On: " & whenPasswordExpires

'========================================
' Clean up.
'========================================
Set oUser = Nothing
Set maxPwdAge = Nothing
Set oDomain = Nothing



Código de VBScript de ejemplo

Para utilizar el siguiente ejemplo de que código, debe copiar el código en un archivo de texto con una extensión de archivo .vbs .

    '========================================    ' First, get the domain policy.
'========================================
Dim oDomain
Dim oUser
Dim maxPwdAge
Dim numDays

strDomainDN = "YOURDOMAIN"
strUserDN = strDomainDN & "/CN=John Doe,CN=Users,DC=YOURDOMAIN,DC=COM"

Set oDomain = GetObject("LDAP://" & strDomainDN)
Set maxPwdAge = oDomain.Get("maxPwdAge")

'========================================
' Calculate the number of days that are
' held in this value.
'========================================
numDays = CCur((maxPwdAge.HighPart * 2 ^ 32) + _
maxPwdAge.LowPart) / CCur(-864000000000)
WScript.Echo "Maximum Password Age: " & numDays

'========================================
' Determine the last time that the user
' changed his or her password.
'========================================
Set oUser = GetObject("LDAP://" & strUserDN)

'========================================
' Add the number of days to the last time
' the password was set.
'========================================
whenPasswordExpires = DateAdd("d", numDays, oUser.PasswordLastChanged)

WScript.Echo "Password Last Changed: " & oUser.PasswordLastChanged
WScript.Echo "Password Expires On: " & whenPasswordExpires

'========================================
' Clean up.
'========================================
Set oUser = Nothing
Set maxPwdAge = Nothing
Set oDomain = Nothing

WScript.Echo "Done"


Referencias

Para obtener más información acerca de la documentación de referencia de Interfaces de servicio de Active Directory (ADSI), visite el siguiente sitio Web de MSDN:
Para obtener más información acerca de cómo determinar la última vez que se ha cambiado la contraseña, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

192949 cómo encontrar la fecha del último cambiada de contraseña mediante ADSI

Propiedades

Id. de artículo: 323750 - Última revisión: 17 ene. 2017 - Revisión: 1

Comentarios