1

pwdLastSetは、サーバーBの以下のコードでは返されません。サーバーBでは、ユーザーはLDAP経由で推測している「Crowd」によって作成されます。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 に答える