cómo obtener pwdexpirydate usando el valor de pwdlastset y el valor de maxpwdage en la API C++ win32?
windows winapi (1)
MaxPasswordAge
- Indica el intervalo de tiempo máximo, en segundos, después del cual el usuario debe cambiar la contraseña.
PasswordLastChanged
- La última vez que se cambió la contraseña.
Necesita agregar MaxPasswordAge a PasswordLastChanged.
Fecha VARIANTE
Tipo: FECHA
Un valor de fecha y hora. Las fechas se representan como números de precisión doble, donde la medianoche, el 1 de enero de 1900 es 2.0, el 2 de enero de 1900 es 3.0, y así sucesivamente.
La fecha se puede convertir desde y hacia una representación de MS-DOS utilizando VariantTimeToDosDateTime.
Entonces esto significa que 1.0 representa un día.
de WTypes.h:
typedef double DATE;
Asi que:
DATE expirationDate;
VARIANT vtExpDate;
expirationDate += (double)(ret / 86400);
vtExpDate.vt = VT_DATE ;
vtExpDate.date = date ;
86400 = 24 * 60 * 60 = segundos / día
Luego use VariantTimeToDosDateTime para obtener una fecha legible por humanos.
Obtengo el valor de maxpwdage y el valor de pwdlastset usando ADSI.
Ahora quiero verificar la fecha de caducidad de la contraseña ...
hr = pDomain->get_MaxPasswordAge(&ret);
maxpwdage da 432000 ...
hr = pUser->get_PasswordLastChanged(&expirationDate);
pwdlastset da 41176.470196759263 ...
cómo alcanzar la fecha de caducidad de la contraseña usando este valor?