⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 samr.py

📁 samba最新软件
💻 PY
字号:
#!/usr/bin/python# -*- coding: utf-8 -*-# Unix SMB/CIFS implementation.# Copyright 漏 Jelmer Vernooij <jelmer@samba.org> 2008## Based on samr.js 漏 Andrew Tridgell <tridge@samba.org>#   # This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 3 of the License, or# (at your option) any later version.#   # This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# GNU General Public License for more details.#   # You should have received a copy of the GNU General Public License# along with this program.  If not, see <http://www.gnu.org/licenses/>.#import syssys.path.insert(0, "bin/python")from samba.dcerpc import samr, security, lsadef FillUserInfo(samr, dom_handle, users, level):    """fill a user array with user information from samrQueryUserInfo"""    for i in range(len(users)):        user_handle = samr.OpenUser(handle, security.SEC_FLAG_MAXIMUM_ALLOWED, users[i].idx)        info = samr.QueryUserInfo(user_handle, level)        info.name = users[i].name        info.idx  = users[i].idx        users[i] = info        samr.Close(user_handle)def toArray((handle, array, num_entries)):    ret = []    for x in range(num_entries):        ret.append((array.entries[x].idx, array.entries[x].name))    return ret    def test_Connect(samr):    """test the samr_Connect interface"""    print "Testing samr_Connect"    return samr.Connect2(None, security.SEC_FLAG_MAXIMUM_ALLOWED)def test_LookupDomain(samr, handle, domain):    """test the samr_LookupDomain interface"""    print "Testing samr_LookupDomain"    return samr.LookupDomain(handle, domain)def test_OpenDomain(samr, handle, sid):    """test the samr_OpenDomain interface"""    print "Testing samr_OpenDomain"    return samr.OpenDomain(handle, security.SEC_FLAG_MAXIMUM_ALLOWED, sid)def test_EnumDomainUsers(samr, dom_handle):    """test the samr_EnumDomainUsers interface"""    print "Testing samr_EnumDomainUsers"    users = toArray(samr.EnumDomainUsers(dom_handle, 0, 0, -1))    print "Found %d users" % len(users)    for idx, user in users:        print "\t%s\t(%d)" % (user, idx)def test_EnumDomainGroups(samr, dom_handle):    """test the samr_EnumDomainGroups interface"""    print "Testing samr_EnumDomainGroups"    groups = toArray(samr.EnumDomainGroups(dom_handle, 0, 0))    print "Found %d groups" % len(groups)    for idx, group in groups:        print "\t%s\t(%d)" % (group, idx)def test_domain_ops(samr, dom_handle):    """test domain specific ops"""    test_EnumDomainUsers(samr, dom_handle)    test_EnumDomainGroups(samr, dom_handle)def test_EnumDomains(samr, handle):    """test the samr_EnumDomains interface"""    print "Testing samr_EnumDomains"    domains = toArray(samr.EnumDomains(handle, 0, -1))    print "Found %d domains" % len(domains)    for idx, domain in domains:        print "\t%s (%d)" % (domain, idx)    for idx, domain in domains:        print "Testing domain %s" % domain        sid = samr.LookupDomain(handle, domain)        dom_handle = test_OpenDomain(samr, handle, sid)        test_domain_ops(samr, dom_handle)        samr.Close(dom_handle)if len(sys.argv) != 2:   print "Usage: samr.js <BINDING>"   sys.exit(1)binding = sys.argv[1]print "Connecting to %s" % bindingtry:    samr = samr.samr(binding)except Exception, e:    print "Failed to connect to %s: %s" % (binding, e.message)    sys.exit(1)handle = test_Connect(samr)test_EnumDomains(samr, handle)samr.Close(handle)print "All OK"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -