471,349 Members | 1,542 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 471,349 software developers and data experts.

how to create a new user in windows platform using python?

6
please give me a hand, anything about this topic is welcome.
thanks
Jul 24 '07 #1
6 14854
bartonc
6,596 Expert 4TB
please give me a hand, anything about this topic is welcome.
thanks
Expand|Select|Wrap|Line Numbers
  1. win32net.NetGroupAddMembers(server, group, level, members_data)
This is purposefully cryptic. You'll need to study the Win32 package and ensure that you know what you are doing with Windows sys/admin.

The thing is: I don't want to tell you something and have you break you machine.
Jul 24 '07 #2
bartonc
6,596 Expert 4TB
Expand|Select|Wrap|Line Numbers
  1. win32net.NetGroupAddMembers(server, group, level, members_data)
This is purposefully cryptic. You'll need to study the Win32 package and ensure that you know what you are doing with Windows sys/admin.

The thing is: I don't want to tell you something and have you break you machine.
I can provide the missing information given a little background and more details of your environment. i.e. local machine vs domain, NT variant, etc.
Jul 24 '07 #3
pydou
6
I want to create user in win2k server, win 2k professional and win XP. if the user has already exists, I also need to be able to check and change its password.

now i want to change the IP related settings, could you please give me a function list or code sample?

thanks a lot
Jul 25 '07 #4
bartonc
6,596 Expert 4TB
I want to create user in win2k server, win 2k professional and win XP. if the user has already exists, I also need to be able to check and change its password.

now i want to change the IP related settings, could you please give me a function list or code sample?

thanks a lot
From Python Programming on Win32 By Mark Hammond and Andy Robinson 2000
Expand|Select|Wrap|Line Numbers
  1. # BatchUserCreate.py
  2. #
  3. # A sample administrative script to perform a batch 
  4. # creation of many users.
  5.  
  6. # Input to this program is a text file with one user per 
  7. # line.  Each line contains the new username and the
  8. # user's full name.
  9.  
  10. # Creates the new user, and a new share on the server 
  11. # for the user.  The new share is secure, and can only 
  12. # be accessed by the new user.
  13. import win32security, win32net, win32file, win32api
  14. import win32netcon, ntsecuritycon
  15. import os, sys, string
  16.  
  17. # The name of the server to use to create the user.
  18. serverName = None
  19.  
  20. # The logic for naming the home_drive assumes we have
  21. # a server name.  If we dont, get the current machine name.
  22. if serverName is None:
  23.     serverName = "\\\\" + win32api.GetComputerName()
  24.  
  25. # The root of each users personal directory.
  26. # This is a local reference to the directory where each 
  27. # personal directory is created.
  28. homeRoot = "C:\\Users"
  29.  
  30. def CreateUserAndShare(userName, fullName):
  31.     homeDir = "%s\\%s" % (serverName, userName)
  32.     # Create user data in information level 3 (PyUSER_INFO_3) format.
  33.     userData = {}
  34.     userData['name'] = userName
  35.     userData['full_name'] = fullName
  36.     userData['password'] = userName
  37.     userData['flags'] = win32netcon.UF_NORMAL_ACCOUNT | win32netcon.UF_SCRIPT
  38.     userData['priv'] = win32netcon.USER_PRIV_USER
  39.     userData['home_dir'] = homeDir
  40.     userData['home_dir_drive'] = "P:"
  41.     userData['primary_group_id'] = ntsecuritycon.DOMAIN_GROUP_RID_USERS
  42.     userData['password_expired'] = 1 # User must change password next logon.
  43.  
  44.     # Create the user
  45.     win32net.NetUserAdd(serverName, 3, userData)
  46.  
  47.     # Create the new directory, then the share
  48.     dirName = os.path.join(homeRoot, userName)
  49.     os.mkdir(dirName)
  50.     shareData = {}
  51.     shareData['netname'] = userName
  52.     shareData['type'] = win32netcon.STYPE_DISKTREE
  53.     shareData['path'] = dirName
  54.     shareData['max_uses'] = -1
  55.     # The security setting for the share.
  56.     sd = CreateUserSecurityDescriptor(userName)
  57.     shareData['security_descriptor'] = sd
  58.     # And finally create it.
  59.     win32net.NetShareAdd(serverName, 502, shareData)
  60.  
  61. # A utility function that creates an NT security object for a user.
  62. def CreateUserSecurityDescriptor(userName):
  63.     sidUser = win32security.LookupAccountName(serverName, userName)[0]
  64.     sd = win32security.SECURITY_DESCRIPTOR()
  65.  
  66.     # Create the "well known" SID for the administrators group
  67.     subAuths = ntsecuritycon.SECURITY_BUILTIN_DOMAIN_RID, \
  68.                ntsecuritycon.DOMAIN_ALIAS_RID_ADMINS
  69.     sidAdmins = win32security.SID(ntsecuritycon.SECURITY_NT_AUTHORITY, subAuths)
  70.  
  71.     # Now set the ACL, giving user and admin full access.
  72.     acl = win32security.ACL(128)
  73.     acl.AddAccessAllowedAce(win32file.FILE_ALL_ACCESS, sidUser)
  74.     acl.AddAccessAllowedAce(win32file.FILE_ALL_ACCESS, sidAdmins)
  75.  
  76.     sd.SetSecurityDescriptorDacl(1, acl, 0)
  77.     return sd
  78.  
  79. # Debug helper to delete our test accounts and shares.
  80. def DeleteUser(name):
  81.     try:    win32net.NetUserDel(serverName, name)
  82.     except win32net.error: pass
  83.  
  84.     try: win32net.NetShareDel(serverName, name)
  85.     except win32net.error: pass
  86.  
  87.     try: os.rmdir(os.path.join(homeRoot, name))
  88.     except os.error: pass
  89.  
  90. if __name__=='__main__':
  91.     import fileinput # Helper for reading files line by line
  92.     if len(sys.argv)<2:
  93.         print "You must specify an options file"
  94.         sys.exit(1)
  95.     if sys.argv[1]=="-delete":
  96.         for line in fileinput.input(sys.argv[2:]):
  97.             DeleteUser(string.split(line,",")[0])
  98.     else:
  99.         for line in fileinput.input(sys.argv[1:]):
  100.             userName, fullName = string.split(string.strip(line), ",")
  101.             CreateUserAndShare(userName, fullName)
  102.             print "Created", userName
  103.  
For further support on this, you'll need to buy the book.
Jul 27 '07 #5
pydou
6
thanks. very useful for my task.
Aug 8 '07 #6
bartonc
6,596 Expert 4TB
thanks. very useful for my task.
You are welcome. I'm glad to know that you received the material.
Aug 8 '07 #7

Post your reply

Sign in to post your reply or Sign up for a free account.

Similar topics

3 posts views Thread by David Isal | last post: by
2 posts views Thread by Bernhard Mulder | last post: by
3 posts views Thread by Ryan Smith | last post: by
9 posts views Thread by Skip Montanaro | last post: by
1 post views Thread by abcd | last post: by
4 posts views Thread by Joshua Kugler | last post: by
8 posts views Thread by Theo v. Werkhoven | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.