在服务器B上,我下面的代码中没有返回pwdLastSet。在服务器B上,用户是由“群组”创建的,我猜是通过LDAP。当我在AD Manger中检查用户时,我可以看到该字段,但当我试图通过代码获取服务器B上的pwdLastSet时,它不起作用。但是,这一切都在服务器A上运行,我在服务器A上通过AD创建用户。
我还通过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;
}发布于 2013-03-15 21:46:37
尽管我的登录名具有企业/域管理员组成员身份,但当我执行它时,它仍然不起作用。
然而,当我右键单击控制台应用程序并以管理员身份运行它时,它就像一个护身符一样工作。加尔!
https://stackoverflow.com/questions/15416777
复制相似问题