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()