You are not logged in Log in Join
You are here: Home » Members » mcdonc » C:\WINNT\Profiles\mcdonc\Desktop\getsmbuser.py » View File

Log in
Name

Password

 

C:\WINNT\Profiles\mcdonc\Desktop\getsmbuser.py

File details
Size
1 K
File type
text/plain

File contents

# getsmbuser.py - for retrieving NT usernames from a 
# domain controller and printing them in "smbUserFolder" format.
# For use with the "smbUserFolder" Zope product.
# Works under Windows NT/Python 1.52 with win32 extensions
# Usable for any purpose, no warranties.
# Chris McDonough, IQ Group, email [email protected]
#
# Usage:
# getsmbuser.py {NT domain name} {PDC name} {BDC name}
#
# Ex:
# getsmbuser.py INFOQUEST_1 IQPDC IQBDC

import win32net
import win32netcon
import sys
import string

def CheckArgs():
      "Checks module arguments"
      argerror = "Not enough arguments"
      if (len(sys.argv)) < 4:
           raise argerror
        
def usage():
      "Prints usage"
      print "  Usage: " + sys.argv[0] + " {NT domain name} {PDC name} {BDC name}"
      print "Example:" + sys.argv[0] + " INFOQUEST_1 IQPDC IQBDC"
      
def UserEnum(PDC):
      "Returns a list of users from the PDC"
      resume = 0
      functionusers = []
      while 1:
        data, total, resume = win32net.NetUserEnum(PDC, 3 ,win32netcon.FILTER_NORMAL_ACCOUNT, resume)
        for user in data:
                functionusers.append(user['name'])
        if not resume:
                return functionusers

def PrintUsers():
        "Prints a userlist in the format lowercaseusername:DOMAINNAME:PDC:BDC"
        X = UserEnum('\\\\'+ PDC)
        for user in X:
                a = `user`
                b = string.lower(a[2:-1])
                print "%s:%s:%s:%s" % (b, NTDOMAIN, PDC, BDC)

try:
        CheckArgs()
except:
        usage()
else:
        NTDOMAIN = sys.argv[1]   
        PDC = sys.argv[2]
        BDC = sys.argv[3]
        PrintUsers()