def ServerEnum(): "Enumerates all servers on the network" resume = 0 while 1: data, total, resume = win32net.NetServerEnum("", 100, win32netcon.SV_TYPE_ALL, None, resume) # data, total, resume = win32net.NetServerEnum("\\\\RCHATEAU-HP", 100, win32netcon.SV_TYPE_ALL, None, resume) print(str(total)) print(str(resume)) for s in data: verbose("Server %s" % s['name']) # Now loop over the shares. shareresume = 0 while 1: sharedata, total, shareresume = win32net.NetShareEnum( GlobalServer, 2, shareresume) for share in sharedata: verbose( " %(netname)s (%(path)s):%(remark)s - in use by %(current_uses)d users" % share) if not shareresume: break if not resume: break
def _WinFileOwner(filepath): import pywintypes import pythoncom import win32com.client import win32net import win32netcon OWNERID=8 try: d=os.path.split(filepath) oShell = win32com.client.Dispatch("Shell.Application") oFolder = oShell.NameSpace(d[0]) ownerid=str(oFolder.GetDetailsOf(oFolder.parsename(d[1]), OWNERID)) ownerid=ownerid.split('\\')[-1] except: ownerid='0' #Too slow... ##oWMI = win32com.client.GetObject(r"winmgmts:\\.\root\cimv2") ##qry = "Select * from Win32_UserAccount where NAME = '%s'" % ownerid ##qry = oWMI.ExecQuery(qry) ##if qry.count > 0: ##for result in qry: ## ownername=str(result.FullName) ## break ##else: ownername='No user match' #Much quicker... try: dc=win32net.NetServerEnum(None,100,win32netcon.SV_TYPE_DOMAIN_CTRL) if dc[0]: dcname=dc[0][0]['name'] ownername=win32net.NetUserGetInfo(r"\\"+dcname,ownerid,2)['full_name'] else: ownername=win32net.NetUserGetInfo(None,ownerid,2)['full_name'] except: ownername='No user match' return ownerid,ownername
def UserGetInfo(): dc = win32net.NetServerEnum(None, 100, win32netcon.SV_TYPE_DOMAIN_CTRL) user = win32api.GetUserName() if dc[0]: dcname = dc[0][0]['name'] return win32net.NetUserGetInfo("\\\\" + dcname, user, 1) else: return win32net.NetUserGetInfo(None, user, 1)
def getall_boxes(self, domain='', server=''): res = 1 wrk_lst = [] try: while res: # loop until res2 (wrk_list2, total, res2) = win32net.NetServerEnum( '', 100, win32netcon.SV_TYPE_ALL, server, res, win32netcon.MAX_PREFERRED_LENGTH) wrk_lst.extend(wrk_list2) res = res2 except win32net.error: print('Error: %s' % traceback.format_tb(sys.exc_info()[2]), '\n') final_lst = [] for i in wrk_lst: final_lst.append(str(i['name'])) return final_lst
def ServerEnum(): "Enumerates all servers on the network" resume = 0 while 1: data, total, resume = win32net.NetServerEnum(server, 100, win32netcon.SV_TYPE_ALL, None, resume) for s in data: verbose("Found server %s" % s['name']) # Now loop over the shares. shareresume=0 while 1: sharedata, total, shareresume = win32net.NetShareEnum(server, 2, shareresume) for share in sharedata: verbose(" %(netname)s (%(path)s):%(remark)s - in use by %(current_uses)d users" % share) if not shareresume: break if not resume: break print "Enumerated all the servers on the network"
print "==========" for user in users[0]: print user['name'] print "" #print groups groups = win32net.NetGroupEnum('localhost', 0) print "GROUPS" print "==========" for group in groups[0]: print group['name'] print "" #print shares shares = win32net.NetShareEnum('localhost', 0) print "SHARES" print "==========" for share in shares[0]: print share['netname'] print "" #print servers servers = win32net.NetServerEnum(None, 100) print "SERVERS" print "==========" for server in servers[0]: print server['name'] print ""