Hello.
I'm trying to convert AD expireAccount (wich is 100 nano second from 1601)
to shadowExpire (which is the number of day from 1970). For a sync from an
AD to an OpenLDAP.
I found the aDTimeToUnixTimestamp function. It work well when there is an
"Expire Date Account". However, the default value for "Never Expire" in AD
is "9223372036854775807" and with this function I end up with a date like
23.1.1975.
My question is : is there a way to let empty the shadowExpire if the
expireAccount is "9223372036854775807" ?
My lsc dataset :
> <dataset>
> <name>shadowExpire</name>
> <policy>FORCE</policy>
> <forceValues>
>
> <string>js:(AD.aDTimeToUnixTimestamp(srcBean.getDatasetFirstValueById("accountExpires"))/86400).toFixed(0)</string>
</forceValues>
> </dataset>
>
Examples of users' values
user 1 :
AD : 129915360000000000
LDAP : 15591
Date LDAP : 8.9.2012
user2 :
AD : 9223372036854775807
LDAP : 1848
Date LDAP : 23.1.1975
The only solution I see for now is to create an other task to update the
shadowExpire and put a condition for this task like this :
> <conditions>
> <create>false</create>
> <update>srcBean.getDatasetFirstValueById("accountExpires")
> <9223372036854775807
> </update>
> <delete>false</delete>
> <changeId>false</changeId>
> </conditions>
>
Is there a better way ?
Thanks !
Source and usefull links :
http://lsc-project.org/javadoc/2.0-SNAPSHOT/org/lsc/utils/directory/AD.html#aDTimeToUnixTimestamp(long
)
http://msdn.microsoft.com/en-us/library/windows/desktop/ms675098(v=vs.85).aspx
http://timestamp.ooz.ie/p/ad.html
MILLION Emeric
_______________________________________________________________
Ldap Synchronization Connector (LSC) - http://lsc-project.org
lsc-users mailing list
[email protected]
http://lists.lsc-project.org/listinfo/lsc-users