我使用ADSI获得maxpwdage值和pwdlastset值。
现在我要查看密码到期日期......
hr = pDomain->get_MaxPasswordAge(&ret);
maxpwdage给出432000 ......
hr = pUser->get_PasswordLastChanged(&expirationDate);
pwdlastset给出了41176.470196759263 ......
如何使用此值来实现密码到期日期?
答案 0 :(得分:1)
<强> MaxPasswordAge 强>
<强> PasswordLastChanged 强>
您需要将MaxPasswordAge添加到PasswordLastChanged。
VARIANT日期
输入:DATE
日期和时间值。日期表示为双精度数,其中1900年1月1日午夜为2。0,1900年1月2日为3.0,依此类推。
可以使用VariantTimeToDosDateTime将日期转换为MS-DOS表示形式。
所以这意味着1.0代表一天。
来自WTypes.h的:
typedef double DATE;
所以:
DATE expirationDate;
VARIANT vtExpDate;
expirationDate += (double)(ret / 86400);
vtExpDate.vt = VT_DATE ;
vtExpDate.date = date ;
86400 = 24 * 60 * 60 =秒/天
然后使用VariantTimeToDosDateTime获取人类可读日期。