diff options
Diffstat (limited to 'source4/scripting/python')
| -rw-r--r-- | source4/scripting/python/samba/dbchecker.py | 12 | 
1 files changed, 10 insertions, 2 deletions
diff --git a/source4/scripting/python/samba/dbchecker.py b/source4/scripting/python/samba/dbchecker.py index 91ae0b68ea..bc68457a05 100644 --- a/source4/scripting/python/samba/dbchecker.py +++ b/source4/scripting/python/samba/dbchecker.py @@ -59,11 +59,19 @@ class dbcheck(object):          self.rid_dn = ldb.Dn(samdb, "CN=RID Manager$,CN=System," + samdb.domain_dn())          self.ntds_dsa = samdb.get_dsServiceName() -        res = self.samdb.search(base=self.ntds_dsa, scope=ldb.SCOPE_BASE, attrs=['msDS-hasMasterNCs']) +        res = self.samdb.search(base=self.ntds_dsa, scope=ldb.SCOPE_BASE, attrs=['msDS-hasMasterNCs', 'hasMasterNCs'])          if "msDS-hasMasterNCs" in res[0]:              self.write_ncs = res[0]["msDS-hasMasterNCs"]          else: -            self.write_ncs = None +            # If the Forest Level is less than 2003 then there is no +            # msDS-hasMasterNCs, so we fall back to hasMasterNCs +            # no need to merge as all the NCs that are in hasMasterNCs must +            # also be in msDS-hasMasterNCs (but not the opposite) +            if "hasMasterNCs" in res[0]: +                self.write_ncs = res[0]["hasMasterNCs"] +            else: +                self.write_ncs = None +      def check_database(self, DN=None, scope=ldb.SCOPE_SUBTREE, controls=[], attrs=['*']):          '''perform a database check, returning the number of errors found'''  | 
