Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
    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
Ejemplo n.º 5
0
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 ""