From: David Mulder Date: Thu, 17 Feb 2022 17:38:46 +0000 (-0700) Subject: samba-tool: gpo load provide option for replace vs merge X-Git-Tag: tevent-0.14.1~33 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e60327036067d1b3141ec40200efeeb057aa93ff;p=thirdparty%2Fsamba.git samba-tool: gpo load provide option for replace vs merge Signed-off-by: David Mulder Reviewed-by: Andrew Bartlett Tested-by: Kees van Vloten --- diff --git a/python/samba/netcmd/gpo.py b/python/samba/netcmd/gpo.py index aa214d38188..ef4f8393984 100644 --- a/python/samba/netcmd/gpo.py +++ b/python/samba/netcmd/gpo.py @@ -747,13 +747,15 @@ class cmd_load(GPOCommand): Option("--user-ext-name", action="append", dest="user_exts", default=['{35378EAC-683F-11D2-A89A-00C04FBBCFA2}'], - help="A user extension name to add to gPCUserExtensionNames") + help="A user extension name to add to gPCUserExtensionNames"), + Option("--replace", action='store_true', default=False, + help="Replace the existing Group Policies, rather than merging") ] def run(self, gpo, H=None, content=None, machine_exts=['{35378EAC-683F-11D2-A89A-00C04FBBCFA2}'], user_exts=['{35378EAC-683F-11D2-A89A-00C04FBBCFA2}'], - sambaopts=None, credopts=None, versionopts=None): + replace=False, sambaopts=None, credopts=None, versionopts=None): if content is None: policy_defs = json.loads(sys.stdin.read()) elif os.path.exists(content): @@ -772,7 +774,10 @@ class cmd_load(GPOCommand): for ext_name in user_exts: reg.register_extension_name(ext_name, 'gPCUserExtensionNames') try: - reg.merge_s(policy_defs) + if replace: + reg.replace_s(policy_defs) + else: + reg.merge_s(policy_defs) except NTSTATUSError as e: if e.args[0] == NT_STATUS_ACCESS_DENIED: raise CommandError("The authenticated user does "