我使用的DirectorySearcher
过滤器不起作用,很可能是因为Active Directory中的accountExpires
属性格式错误。我想使用LDAP查找所有已过期的帐户,但如何将DateTime.Now
转换为accountExpires
格式?我发现有很多关于将accountExpires
转换为Datetime
格式但不是相反的方式。例如,我找到了一个例子:
129383640000000000 is equivalent to Sat, 01 Jan 2011 14:00:00 GMT
我怎么能以其他方式做到这一点?我知道它是1 JAn 1601的100纳秒间隔,但不知道如何计算
答案 0 :(得分:1)
您需要将其转换为FILETIME,as per the specification:
DateTime dt = DateTime.Now.AddDays(30);
long ftAccountExpires = dt.ToFileTime();
在上面的示例中,如果您将accountExpires
设置为ftAccountExpires
的值,该帐户将在30天后过期