From: Jule Anger Date: Mon, 26 Aug 2019 07:47:41 +0000 (+0200) Subject: samba-tool: add -b/--base-dn option to users list command X-Git-Tag: samba-4.12.0rc1~22 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d4de2e3192ed9a1e93bc67f3e110dedde339ed98;p=thirdparty%2Fsamba.git samba-tool: add -b/--base-dn option to users list command With this option it's e.g. possible to list the users of a specify OU or users which are located under a different specific place in the AD. Signed-off-by: Jule Anger Reviewed-by: Björn Baumbach Reviewed-by: Ralph Boehme --- diff --git a/python/samba/netcmd/user.py b/python/samba/netcmd/user.py index b04ee49d018..26db3105da0 100644 --- a/python/samba/netcmd/user.py +++ b/python/samba/netcmd/user.py @@ -481,6 +481,9 @@ class cmd_user_list(Command): takes_options = [ Option("-H", "--URL", help="LDB URL for database or target server", type=str, metavar="URL", dest="H"), + Option("-b", "--base-dn", + help="Specify base DN to use", + type=str), Option("--full-dn", dest="full_dn", default=False, action='store_true', @@ -498,6 +501,7 @@ class cmd_user_list(Command): credopts=None, versionopts=None, H=None, + base_dn=None, full_dn=False): lp = sambaopts.get_loadparm() creds = credopts.get_credentials(lp, fallback_machine=True) @@ -505,8 +509,12 @@ class cmd_user_list(Command): samdb = SamDB(url=H, session_info=system_session(), credentials=creds, lp=lp) - domain_dn = samdb.domain_dn() - res = samdb.search(domain_dn, scope=ldb.SCOPE_SUBTREE, + search_dn = samdb.domain_dn() + if base_dn: + search_dn = samdb.normalize_dn_in_domain(base_dn) + + res = samdb.search(search_dn, + scope=ldb.SCOPE_SUBTREE, expression=("(&(objectClass=user)(userAccountControl:%s:=%u))" % (ldb.OID_COMPARATOR_AND, dsdb.UF_NORMAL_ACCOUNT)), attrs=["samaccountname"])