为什么按a不显示无服务器,pwdLastSet显示在一个服务器A上,但不在服务器B上,即使它在那里…

  • Post author:
  • Post category:其他


pwdLastSet不会在我的代码中返回到服务器B上。在服务器B上,用户是通过“猜测”通过LDAP 。当我在AD Manger中检查用户时,我可以看到该字段,但是当我尝试通过代码获取服务器B上的pwdLastSet时,它不起作用。但是,它全部在服务器A上运行,我通过AD创建用户。pwdLastSet显示在一个服务器A上,但不在服务器B上,即使它在那里

我也尝试过通过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;

}

+0

pwdLastSet属性是否完全从SearchResult对象中丢失,或者是属性,但会出现null或作为默认日期时间? –

2013-03-14 19:09:33

+0

另一件要检查的问题是,如果您有主域控制器和辅助域控制器,那么您的代码是否连接到尚未将pwdLastSet值复制到的域控制器。 DirectorySearch构造函数接受一个路径参数,该参数将允许您指定它连接的域控制器。 –

2013-03-14 19:24:33

+0

它根本没有显示出来,我会检查以确保它是主域控制器。 –

2013-03-14 19:30:19