当使用AdsGetObject MSDN API的Windows操作系统强制执行PSO细粒度策略时,如何获取用户密码有效期限信息?

问题描述 投票:0回答:1

当前,我们正在使用AdsGetObject MSDN API通过https://docs.microsoft.com/en-us/windows/win32/ad/example-code-for-searching-for-users示例获取用户的密码到期信息,并且对于组策略对象密码到期信息也可以正常工作。

但是昨天,我们得到了升级,该API并不遵守通过密码设置对象策略强制实施的密码过期。

没有人知道这个API可以通过组策略来遵循PSO策略来获取密码有效期数据吗?甚至net user <username>命令也会根据组策略而不是PSO策略返回密码过期日期。

c++ c++11 windows-server-2012 msdn
1个回答
0
投票

类似的事情似乎对我有用

swprintf(wszCandidateAccount, _countof(wszCandidateAccount), L"WinNT://%s/%s, user", wszDomainOrMachine, wszUserName);

if (FAILED(hr = ADsOpenObject(wszCandidateAccount, NULL, NULL, ADS_SECURE_AUTHENTICATION, IID_IADsUser, (void **)&pIADsUser)))
{
    ShowError("ADsOpenObject->Retrieving user object", hr);
    CoUninitialize();
    return 1;
}

DATE expDate;
hr = pIADsUser->get_PasswordExpirationDate(&expDate);
© www.soinside.com 2019 - 2024. All rights reserved.