1
0
mirror of https://github.com/samba-team/samba.git synced 2025-11-11 00:23:51 +03:00

r3590: Add some more commands to rpcclient from a patch by jbm. Add

SamrQueryDomInfo, SamrQueryDomInfo2, SamrEnumDomainAliases, and
SamrEnumDomainUsers.
This commit is contained in:
Tim Potter
2004-11-07 01:11:11 +00:00
committed by Gerald (Jerry) Carter
parent 6d918f1595
commit 91eb405354
2 changed files with 186 additions and 6 deletions

View File

@@ -73,11 +73,10 @@ def string_to_sid(string):
string = string[match.end():]
print map(type, sub_auths)
return {'sid_rev_num': sid_rev_num, 'id_auth': id_auth,
'num_auths': num_auths, 'sub_auths': sub_auths}
class SamrHandle:
def __init__(self, pipe, handle):
@@ -92,6 +91,7 @@ class SamrHandle:
dcerpc.samr_Close(self.pipe, r)
class ConnectHandle(SamrHandle):
def EnumDomains(self):
@@ -139,20 +139,69 @@ class ConnectHandle(SamrHandle):
result = dcerpc.samr_OpenDomain(self.pipe, r)
return DomainHandle(pipe, result['domain_handle'])
return DomainHandle(self.pipe, result['domain_handle'])
class DomainHandle(SamrHandle):
def QueryDomainInfo(self, level = 2):
r = {}
r['domain_handle'] = self.domain_handle
r['domain_handle'] = self.handle
r['level'] = level
result = dcerpc.samr_QueryDomainInfo(pipe, r)
result = dcerpc.samr_QueryDomainInfo(self.pipe, r)
return result
def QueryDomainInfo2(self, level = 2):
r = {}
r['domain_handle'] = self.handle
r['level'] = level
result = dcerpc.samr_QueryDomainInfo2(self.pipe, r)
return result
def EnumDomainGroups(self):
r = {}
r['domain_handle'] = self.handle
r['resume_handle'] = 0
r['max_size'] = 1000
result = dcerpc.samr_EnumDomainGroups(self.pipe, r)
return result
def EnumDomainAliases(self):
r = {}
r['domain_handle'] = self.handle
r['resume_handle'] = 0
# acct_flags in SamrEnumerateAliasesInDomain has probably
# no meaning so use 0xffffffff like W2K
r['acct_flags'] = 0xffffffff
r['max_size'] = 1000
result = dcerpc.samr_EnumDomainAliases(self.pipe, r)
return result
def EnumDomainUsers(self, user_account_flags = 16):
r = {}
r['domain_handle'] = self.handle
r['resume_handle'] = 0
r['acct_flags'] = user_account_flags
r['max_size'] = 1000
result = dcerpc.samr_EnumDomainUsers(self.pipe, r)
return result
def Connect(pipe, system_name = None, access_mask = 0x02000000):
"""Connect to the SAMR pipe."""