From 6a2a2dfa5f510fcab964588c29c2991859bbc83f Mon Sep 17 00:00:00 2001 From: Amitay Isaacs Date: Thu, 17 Nov 2011 09:34:57 +1100 Subject: samba-tool: Fix the domain account policy max_pwd_age calculation Windows sets maxPwdAge to -0x8000000000000000 when maximum password age is set to 0 days. --- source4/scripting/python/samba/netcmd/domain.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'source4/scripting') diff --git a/source4/scripting/python/samba/netcmd/domain.py b/source4/scripting/python/samba/netcmd/domain.py index f1ebf7e2ba..9f77820855 100644 --- a/source4/scripting/python/samba/netcmd/domain.py +++ b/source4/scripting/python/samba/netcmd/domain.py @@ -386,7 +386,10 @@ class cmd_domain_passwordsettings(Command): cur_min_pwd_len = int(res[0]["minPwdLength"][0]) # ticks -> days cur_min_pwd_age = int(abs(int(res[0]["minPwdAge"][0])) / (1e7 * 60 * 60 * 24)) - cur_max_pwd_age = int(abs(int(res[0]["maxPwdAge"][0])) / (1e7 * 60 * 60 * 24)) + if int(res[0]["maxPwdAge"][0]) == -0x8000000000000000: + cur_max_pwd_age = 0 + else: + cur_max_pwd_age = int(abs(int(res[0]["maxPwdAge"][0])) / (1e7 * 60 * 60 * 24)) except Exception, e: raise CommandError("Could not retrieve password properties!", e) @@ -482,7 +485,10 @@ class cmd_domain_passwordsettings(Command): raise CommandError("Maximum password age must be in the range of 0 to 999!") # days -> ticks - max_pwd_age_ticks = -int(max_pwd_age * (24 * 60 * 60 * 1e7)) + if max_pwd_age == 0: + max_pwd_age_ticks = -0x8000000000000000 + else: + max_pwd_age_ticks = -int(max_pwd_age * (24 * 60 * 60 * 1e7)) m["maxPwdAge"] = ldb.MessageElement(str(max_pwd_age_ticks), ldb.FLAG_MOD_REPLACE, "maxPwdAge") -- cgit