0

我正在使用 C++ Win32 API ...

我想知道用户密码策略属性值...

即“密码永不过期”,如何使用 C++ Win32 API 检查此属性是否已检查?

4

2 回答 2

1

您可以使用 COM 接口 IADsUser。请参阅此 MSDN 示例以启用“永不过期”标志

您可以在行之前使用它的第一部分V_I4(&var) |= ADS_UF_DONT_EXPIRE_PASSWD;- 将其替换为if (V_I4(&var) & ADS_UF_DONT_EXPIRE_PASSWD) { /* option is enabled! your code here */}

希望这可以帮助。这是工作:)

于 2012-11-02T12:00:31.097 回答
1

请查看此...希望它可以解决您的问题

WriteLogMessage("处理中:" + 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

如果您想使用没有脚本,请使用第三方工具。它会自动将您更新为密码已过期和密码永不过期。

于 2012-11-05T10:35:45.573 回答