我使用的是C ++ Win32 API ...
我想知道用户密码策略属性值...
即“密码永不过期”,如何检查是否使用C ++ Win32 API检查此属性?
答案 0 :(得分:1)
您可以使用COM接口IADsUser。 见this MSDN example for enabling "never expires" flag
您可以在排到V_I4(&var) |= ADS_UF_DONT_EXPIRE_PASSWD;
之前的第一部分使用它 - 将其替换为if (V_I4(&var) & ADS_UF_DONT_EXPIRE_PASSWD) { /* option is enabled! your code here */}
希望这会有所帮助。这是工作:)
答案 1 :(得分:1)
请查看此...希望它可以解决您的问题
WriteLogMessage(“Processing:”+ UserEntry.Name);
WriteLogMessage("Max Password Age:" + iMaxPwdAge);
//Console.WriteLine("Account control:" + UserEntry.Properties["userAccountcontrol"].Value);
int userAccountControl = Convert.ToInt32(UserEntry.Properties["userAccountcontrol"].Value);
if ((userAccountControl & ADS_DONT_EXPIRE_PASSWORD) > 0)
{
WriteLogMessage("Password never expires for:" + UserEntry.Name);
}
else
{
WriteLogMessage("Password expiration date found for:" + UserEntry.Name);
ActiveDs.IADsUser native = (ActiveDs.IADsUser)UserEntry.NativeObject;
DateTime passwordLastChanged = new DateTime(9999, 1, 1);
try
如果您不想使用脚本,请使用第三方工具。它会自动更新您的密码已过期且密码永不过期。