mirror of
https://github.com/samba-team/samba.git
synced 2025-08-02 00:22:11 +03:00
Add '--use-ntvfs' option to 'samba-tool domain join'
This commit is contained in:
committed by
Andrew Bartlett
parent
9db04c481d
commit
1a2b65cd31
@ -47,12 +47,13 @@ class dc_join(object):
|
||||
|
||||
def __init__(ctx, server=None, creds=None, lp=None, site=None,
|
||||
netbios_name=None, targetdir=None, domain=None,
|
||||
machinepass=None):
|
||||
machinepass=None, use_ntvfs=False):
|
||||
ctx.creds = creds
|
||||
ctx.lp = lp
|
||||
ctx.site = site
|
||||
ctx.netbios_name = netbios_name
|
||||
ctx.targetdir = targetdir
|
||||
ctx.use_ntvfs = use_ntvfs
|
||||
|
||||
ctx.creds.set_gensec_features(creds.get_gensec_features() | gensec.FEATURE_SEAL)
|
||||
ctx.net = Net(creds=ctx.creds, lp=ctx.lp)
|
||||
@ -595,7 +596,7 @@ class dc_join(object):
|
||||
hostname=ctx.myname, domainsid=ctx.domsid,
|
||||
machinepass=ctx.acct_pass, serverrole="domain controller",
|
||||
sitename=ctx.site, lp=ctx.lp, ntdsguid=ctx.ntds_guid,
|
||||
dns_backend="NONE")
|
||||
use_ntvfs=ctx.use_ntvfs, dns_backend="NONE")
|
||||
print "Provision OK for domain DN %s" % presult.domaindn
|
||||
ctx.local_samdb = presult.samdb
|
||||
ctx.lp = presult.lp
|
||||
@ -882,11 +883,11 @@ class dc_join(object):
|
||||
|
||||
def join_RODC(server=None, creds=None, lp=None, site=None, netbios_name=None,
|
||||
targetdir=None, domain=None, domain_critical_only=False,
|
||||
machinepass=None):
|
||||
machinepass=None, use_ntvfs=False):
|
||||
"""join as a RODC"""
|
||||
|
||||
ctx = dc_join(server, creds, lp, site, netbios_name, targetdir, domain,
|
||||
machinepass)
|
||||
machinepass, use_ntvfs)
|
||||
|
||||
lp.set("workgroup", ctx.domain_name)
|
||||
print("workgroup is %s" % ctx.domain_name)
|
||||
@ -936,10 +937,10 @@ def join_RODC(server=None, creds=None, lp=None, site=None, netbios_name=None,
|
||||
|
||||
def join_DC(server=None, creds=None, lp=None, site=None, netbios_name=None,
|
||||
targetdir=None, domain=None, domain_critical_only=False,
|
||||
machinepass=None):
|
||||
machinepass=None, use_ntvfs=False):
|
||||
"""join as a DC"""
|
||||
ctx = dc_join(server, creds, lp, site, netbios_name, targetdir, domain,
|
||||
machinepass)
|
||||
machinepass, use_ntvfs)
|
||||
|
||||
lp.set("workgroup", ctx.domain_name)
|
||||
print("workgroup is %s" % ctx.domain_name)
|
||||
@ -966,10 +967,10 @@ def join_DC(server=None, creds=None, lp=None, site=None, netbios_name=None,
|
||||
|
||||
def join_subdomain(server=None, creds=None, lp=None, site=None, netbios_name=None,
|
||||
targetdir=None, parent_domain=None, dnsdomain=None, netbios_domain=None,
|
||||
machinepass=None):
|
||||
machinepass=None, use_ntvfs=False):
|
||||
"""join as a DC"""
|
||||
ctx = dc_join(server, creds, lp, site, netbios_name, targetdir, parent_domain,
|
||||
machinepass)
|
||||
machinepass, use_ntvfs)
|
||||
ctx.subdomain = True
|
||||
ctx.parent_domain_name = ctx.domain_name
|
||||
ctx.domain_name = netbios_domain
|
||||
|
@ -146,14 +146,17 @@ class cmd_domain_join(Command):
|
||||
help="only replicate critical domain objects",
|
||||
action="store_true"),
|
||||
Option("--machinepass", type=str, metavar="PASSWORD",
|
||||
help="choose machine password (otherwise random)")
|
||||
help="choose machine password (otherwise random)"),
|
||||
Option("--use-ntvfs", help="Use NTVFS for the fileserver (default = no)",
|
||||
action="store_true")
|
||||
]
|
||||
|
||||
takes_args = ["domain", "role?"]
|
||||
|
||||
def run(self, domain, role=None, sambaopts=None, credopts=None,
|
||||
versionopts=None, server=None, site=None, targetdir=None,
|
||||
domain_critical_only=False, parent_domain=None, machinepass=None):
|
||||
domain_critical_only=False, parent_domain=None, machinepass=None,
|
||||
use_ntvfs=False):
|
||||
lp = sambaopts.get_loadparm()
|
||||
creds = credopts.get_credentials(lp)
|
||||
net = Net(creds, lp, server=credopts.ipaddress)
|
||||
@ -178,13 +181,13 @@ class cmd_domain_join(Command):
|
||||
join_DC(server=server, creds=creds, lp=lp, domain=domain,
|
||||
site=site, netbios_name=netbios_name, targetdir=targetdir,
|
||||
domain_critical_only=domain_critical_only,
|
||||
machinepass=machinepass)
|
||||
machinepass=machinepass, use_ntvfs=use_ntvfs)
|
||||
return
|
||||
elif role == "RODC":
|
||||
join_RODC(server=server, creds=creds, lp=lp, domain=domain,
|
||||
site=site, netbios_name=netbios_name, targetdir=targetdir,
|
||||
domain_critical_only=domain_critical_only,
|
||||
machinepass=machinepass)
|
||||
machinepass=machinepass, use_ntvfs=use_ntvfs)
|
||||
return
|
||||
elif role == "SUBDOMAIN":
|
||||
netbios_domain = lp.get("workgroup")
|
||||
@ -192,7 +195,7 @@ class cmd_domain_join(Command):
|
||||
parent_domain = ".".join(domain.split(".")[1:])
|
||||
join_subdomain(server=server, creds=creds, lp=lp, dnsdomain=domain, parent_domain=parent_domain,
|
||||
site=site, netbios_name=netbios_name, netbios_domain=netbios_domain, targetdir=targetdir,
|
||||
machinepass=machinepass)
|
||||
machinepass=machinepass, use_ntvfs=use_ntvfs)
|
||||
return
|
||||
else:
|
||||
raise CommandError("Invalid role '%s' (possible values: MEMBER, DC, RODC, SUBDOMAIN)" % role)
|
||||
|
Reference in New Issue
Block a user