#!/usr/bin/python
import sys
MAP = [
("SCRIPT","0x0001","1"),
("ACCOUNTDISABLE","0x0002","2"),
("HOMEDIR_REQUIRED","0x0008","8"),
("LOCKOUT","0x0010","16"),
("PASSWD_NOTREQD","0x0020","32"),
("PASSWD_CANT_CHANGE","0x0040","64"),
("ENCRYPTED_TEXT_PWD_ALLOWED","0x0080","128"),
("TEMP_DUPLICATE_ACCOUNT","0x0100","256"),
("NORMAL_ACCOUNT","0x0200","512"),
("INTERDOMAIN_TRUST_ACCOUNT","0x0800","2048"),
("WORKSTATION_TRUST_ACCOUNT","0x1000","4096"),
("SERVER_TRUST_ACCOUNT","0x2000","8192"),
("DONT_EXPIRE_PASSWORD","0x10000","65536"),
("MNS_LOGON_ACCOUNT","0x20000","131072"),
("SMARTCARD_REQUIRED","0x40000","262144"),
("TRUSTED_FOR_DELEGATION","0x80000","524288"),
("NOT_DELEGATED","0x100000","1048576"),
("USE_DES_KEY_ONLY","0x200000","2097152"),
("DONT_REQ_PREAUTH","0x400000","4194304"),
("PASSWORD_EXPIRED","0x800000","8388608"),
("TRUSTED_TO_AUTH_FOR_DELEGATION","0x1000000","16777216"),
]
def main(args=None):
orig_num = int(args[1])
calc_num = orig_num
mapping = [(m[0],m[1],int(m[2])) for m in MAP]
mapping.reverse()
flags = []
for name,hex,dec in mapping:
last_name,last_hex,last_dec = name,hex,dec
if dec == mapping[0][2]:
continue
if calc_num >= dec:
calc_num -= dec
flags.append(name)
print ' '.join(flags)
if __name__ == '__main__':
main(sys.argv)
Decoding Active Directory ridiculous time format....
#!/usr/bin/python
import time
import datetime
import sys
def ad2unix(adtime):
secs = int(str(adtime)[:-7])
#secs = int(adtime) / (1000*1000*10)
base = datetime.date(1601,1,1)
return base + datetime.timedelta(0,secs)
def main(args):
return ad2unix(args[1]).ctime()
if __name__ == '__main__':
print main(sys.argv)
RSS Feed (xml)