如何使用C ++ win32 API获取密码到期日期?

时间:2012-10-29 05:50:10

标签: c++ windows winapi active-directory

我正在使用带有win32 Api的C ++,我想获得使用ADSI的用户的密码到期日期。

CoInitialize(NULL);

LPWSTR pszADsPath=L"LDAP://CN=arjun,CN=Users,DC=raja,DC=com";
//HRESULT hr;
IADsUser *pUser;

hr = ADsGetObject(pszADsPath, IID_IADsUser, (void**) &pUser);
if(SUCCEEDED(hr))
{
    DATE expirationDate;
    VariantInit(&var);
    hr = pUser->get_PasswordLastChanged(&expirationDate);
    hr = pUser->get_PasswordExpirationDate(&expirationDate);

    if (SUCCEEDED(hr))
        VariantTimeToSystemTime(expirationDate,&lpExpirationDate);

    pUser->Release();
}

调用get_PasswordLastChanged将成功并返回上次更改的密码日期,但我需要到期日期。

使用get_PasswordExpirationDate,我获得了S_OK(成功),但它也提供了错误代码-2147463155

任何人都可以解释出现了什么问题吗?

1 个答案:

答案 0 :(得分:1)

错误转换为ADS_PROPERTY_NOT_FOUND。可能是这个用户的密码没有过期吗?