mirror of
https://github.com/samba-team/samba.git
synced 2024-12-27 03:21:53 +03:00
811b4054f9
This can be used to enable the recyclebin on a windows box. Once we properly implement this feature in samba we will use this to enable the feature on ourselves as well.
55 lines
1.3 KiB
Python
Executable File
55 lines
1.3 KiB
Python
Executable File
#!/usr/bin/python
|
|
#
|
|
# enabled the Recycle Bin optional feature
|
|
#
|
|
import base64
|
|
import optparse
|
|
import os
|
|
import sys
|
|
|
|
# Find right directory when running from source tree
|
|
sys.path.insert(0, "bin/python")
|
|
|
|
import samba
|
|
from samba import getopt as options, Ldb
|
|
from ldb import SCOPE_SUBTREE, SCOPE_BASE, LdbError
|
|
import sys
|
|
import ldb
|
|
|
|
parser = optparse.OptionParser("enablerecyclebin <URL>")
|
|
sambaopts = options.SambaOptions(parser)
|
|
parser.add_option_group(sambaopts)
|
|
credopts = options.CredentialsOptions(parser)
|
|
parser.add_option_group(credopts)
|
|
parser.add_option_group(options.VersionOptions(parser))
|
|
|
|
opts, args = parser.parse_args()
|
|
opts.dump_all = True
|
|
|
|
if len(args) != 1:
|
|
parser.print_usage()
|
|
sys.exit(1)
|
|
|
|
url = args[0]
|
|
|
|
lp_ctx = sambaopts.get_loadparm()
|
|
|
|
creds = credopts.get_credentials(lp_ctx)
|
|
sam_ldb = Ldb(url, credentials=creds, lp=lp_ctx)
|
|
|
|
# get the rootDSE
|
|
res = sam_ldb.search(base="", expression="", scope=SCOPE_BASE, attrs=["configurationNamingContext"])
|
|
rootDse = res[0]
|
|
|
|
configbase=rootDse["configurationNamingContext"]
|
|
|
|
# enable the feature
|
|
msg = ldb.Message()
|
|
msg.dn = ldb.Dn(sam_ldb, "")
|
|
msg["enableOptionalFeature"] = ldb.MessageElement(
|
|
"CN=Partitions," + str(configbase) + ":766ddcd8-acd0-445e-f3b9-a7f9b6744f2a",
|
|
ldb.FLAG_MOD_ADD, "enableOptionalFeature")
|
|
res = sam_ldb.modify(msg)
|
|
|
|
print "Recycle Bin feature enabled"
|