1

pwdLastSet 没有在服务器 B 下面的代码中返回。在服务器 B 上,用户是由“Crowd”创建的,我猜是通过 LDAP。当我在 AD Manger 中检查用户时,我可以看到该字段,但是当我尝试通过代码在服务器 B 上获取 pwdLastSet 时,它不起作用。然而,这一切都在我通过 AD 创建用户的服务器 A 上运行。

我还通过 UserPrincipal 对象尝试了“LastPasswordSet”。

private static DateTime DateTest(string userName)
   {
       userName = userName.Trim();
       DateTime hacked;
       using (DirectorySearcher ds = new DirectorySearcher())
       {
           ds.SearchScope = SearchScope.Subtree;
           ds.PropertiesToLoad.Add("distinguishedName");
           ds.PropertiesToLoad.Add("pwdLastSet");
           ds.PageSize = 1;
           ds.ServerPageTimeLimit = TimeSpan.FromSeconds(2);
           ds.Filter = string.Format("(&(objectCategory=user)(sAMAccountName={0}))", userName);

           SearchResult sr = ds.FindOne();
           //hacked = DateTime.FromFileTime((long)sr.Properties["pwdLastSet"][0]);

            IDictionaryEnumerator e = sr.Properties.GetEnumerator();
           while (e.MoveNext())
           {
               //if (typeof(ResultPropertyCollection) == e.Key.GetType())
               //{
               //    foreach (var item in (ResultPropertyCollection)e.Key)
               //    {
               //        Console.WriteLine(e);
               //    }

               //}
               Console.Write(e.Key);
               Console.Write(" : ");

               foreach (var item in (ResultPropertyValueCollection)e.Value)
               {
                   Console.WriteLine(item);
               }
           }
       }

       return DateTime.Now;
   }
4

1 回答 1

0

尽管我的登录名具有企业/域管理员组成员身份,但在我执行它时仍然无法正常工作。

但是,当我右键单击控制台应用程序并以管理员身份运行它时,它就像一个魅力。加尔!

于 2013-03-15T13:46:37.340 回答