如何在C Win32 API中使用PWDLASTSET值和MAXPWDAGE值获得PWDExpiryDate

how to get pwdexpirydate using pwdlastset value and maxpwdage value in C++ win32 API?

本文关键字:MAXPWDAGE 值和 PWDLASTSET PWDExpiryDate Win32 API      更新时间:2023-10-16

i使用ADSI获得MaxPwDage值和PWDLASTSET值..

现在我想检查密码到期日期...

hr = pDomain->get_MaxPasswordAge(&ret);

maxpwdage给出432000 ...

hr = pUser->get_PasswordLastChanged(&expirationDate);

PWDLASTSET提供41176.470196759263 ...

如何使用此值实现密码到期日期?

maxpasswordage

  • 在秒内指示最大时间间隔,然后用户必须更改密码。

passwordlastchanged

  • 最后一次更改密码。

您需要将MaxPasswordage添加到passwordlastchanged。

变体日期

类型:date

  • 日期和时间值。日期表示为双重精神数字,1900年1月1日午夜为1900年1月2日,为2.0,是3.0,依此类推。

  • 可以使用varianttimetododosdatetime。

所以这意味着1.0代表一天。

来自wtypes.h:

typedef double DATE;

so:

DATE expirationDate;
VARIANT vtExpDate;
expirationDate += (double)(ret / 86400);
vtExpDate.vt = VT_DATE ;
vtExpDate.date = date ;

86400 = 24 * 60 * 60 =秒/天

然后使用varianttimetododosdateTime获取人类可读日期。