Recipe16.2.Creating a Large Number of Users


Recipe 16.2. Creating a Large Number of Users

Problem

You want to create a large number of user objects, either for testing purposes or to initially populate Active Directory with your employee, customer, or student user accounts.

Solution

The following examples will create 1000 users in the rallencorp.com domain under the Bulk operational unit (OU). The password is set, but no other attributes are configured. You can modify the examples to populate whatever attributes you need. Also remember that if you've enabled password complexity in your domain, you'll need to set a more complex password or the examples will fail.

Using a command-line interface
> for /L %i in (1,1,1000) do dsadd  user cn=User%i,ou=bulk,dc=rallencorp,dc=com -pwd User%i

Using VBScript
' This code creates a large number of users with incremented user names ' e.g., User1, User2, User3, .... ' ------ SCRIPT CONFIGURATION ------ intNumUsers = 1000         ' Number of users to create strParentDN = "<ParentDN>" ' e.g., ou=bulk,dc=emea,dc=rallencorp,dc=com ' ------ END CONFIGURATION ---------     ' Taken from ADS_USER_FLAG_ENUM Const ADS_UF_NORMAL_ACCOUNT = 512     set objParent = GetObject("LDAP://" & strParentDN) for i = 1 to intNumUsers    strUser = "User" & i    Set objUser = objParent.Create("user", "cn=" & strUser)    objUser.Put "sAMAccountName", strUser    objUser.Put "userAccountControl", ADS_UF_NORMAL_ACCOUNT    objUser.SetInfo    objUser.SetPassword(strUser)    objUser.AccountDisabled=FALSE    objUser.SetInfo    WScript.Echo "Created " & strUser next WScript.Echo "" WScript.Echo "Created " & intNumUsers & " users"

Discussion

Using ADSI and on Windows Server 2003, the new DS command-line utilities, you can create hundreds and even thousands of users easily and quickly. I ran both the CLI and VBScript solutions in a test domain to create 1,000 user objects on a single processor machine. The VBScript solution took less than 1.5 minutes and the CLI solution took less than five minutes. Admittedly, they are not populating very many attributes, but it shows that you can quickly populate Active Directory with user accounts very easily. You can also modify the examples to pull from a data source, such as an employee database, and use real data. If you have a spreadsheet that contains all of your user information, see Chapter 1 for more on how to interact with Excel programmatically.

See Also

Recipe 16.1



Windows Server Cookbook
Windows Server Cookbook for Windows Server 2003 and Windows 2000
ISBN: 0596006330
EAN: 2147483647
Year: 2006
Pages: 380
Authors: Robbie Allen

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net