Coldfusion рассчитать аккаунт Expires - PullRequest
2 голосов
/ 15 декабря 2011

Я пытаюсь получить все учетные записи, срок действия которых истек, используя атрибут accountExpires в Active Directory.

Поскольку тип атрибута - Int8 (64-разрядное целое число), а coldfusion не поддерживает такое длинное целое, ямне трудно заставить это работать.

Есть ли какая-либо функция или что-то вроде того, что я могу использовать для достижения вышеизложенного?

Спасибо!

1 Ответ

3 голосов
/ 15 декабря 2011

64-битное целое число в Java - это java.lang.Long . Длинные неявно преобразуются в целые числа в ColdFusion.

accountExpires - это структура времени файла Windows , представляющая число интервалов в 100 наносекунд с 1 января 1601 года. Этот поток показывает, как мы можем получить время файла Windows для дата:

long diff1601to1970 = 315532800 * 1000000000; // <-- diff in nanoseconds(1/1/1601 to 1/1/1970)
long currentFrom1970 =  System.currentTimeMillis() * 1000000;
long currentFrom1601 = diff1601to1970 + currentFrom1970;

Что позволяет нам делать следующее в ColdFusion:

accountExpiresFileTime = 129407978957060010;
date = createObject("java", "java.util.Date").init(
    (accountExpiresFileTime-116444736000000000)/10000
);

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...