Windows Server 2003 : Creating Multiple User Objects

- How To Install Windows Server 2012 On VirtualBox
- How To Bypass Torrent Connection Blocking By Your ISP
- How To Install Actual Facebook App On Kindle Fire
10/10/2010 4:11:59 PM

Creating and Utilizing User Object Templates

It is common for objects to share similar properties. For example, all sales representatives may belong to the same security groups, are allowed to log on to the network during the same hours, and have home folders and roaming profiles on the same server. In such cases, it is helpful when creating a user object for that object to be prepopulated with common properties. This can be accomplished by creating a generic user object—often called a template—and then copying that object to create new users.

To generate a user template, create a user and populate its properties. Put the user into appropriate groups.

Security Alert

Be certain to disable the user, because it is just a template, to ensure that the account is not used for access to network resources.

To create a user based on the template, select the template and choose Copy from the Action menu. You will be prompted for properties similar to those when you created a new user: first and last name, initials, logon names, password, and account options. When the object is created, you will find that properties are copied from the template based on the following property-page-based description:

  • General No properties copied

  • Address All properties except Street address are copied

  • Account All properties are copied, except for logon names, which you are prompted to enter when copying the template

  • Profile All properties are copied, and the profile and home-folder paths are modified to reflect the new user’s logon name

  • Telephones No properties are copied

  • Organization All properties are copied, except for Title

  • Member Of All properties are copied

  • Dial-in, Environment, Sessions, Remote Control, Terminal Services Profile, COM+ No properties are copied


A user that has been generated by copying a template has, by default, the same group membership as the template. Permissions and rights that are assigned to those groups therefore apply to the new user. However, permissions or rights assigned directly to the template user object are not copied or adjusted, so the new user will not have those permissions or rights.

Importing User Objects Using CSVDE

CSVDE is a command-line utility that allows you to import or export objects in Active Directory from (or to) a comma-delimited text file (also known as a comma-separated value text file), which is, of course, a common format easily read in Notepad and Microsoft Excel. The command is a powerful way to generate objects quickly. The command’s basic syntax is

csvde [-i] [-f FileName] [-k]

-i : Specifies import mode. If not specified, the default mode is export.

-f FileName : Identifies the import file name.

-k : Ignores errors including “object already exists,” “constraint violation,” and “attribute or value already exists” during the import operation and continues processing.

The import file itself is a comma-delimited text file (*.csv or *.txt), in which the first line is a list of Lightweight Directory Access Protocol (LDAP) attribute names for the attributes imported, followed by one line for each object. Each object must contain exactly the attributes listed on the first line. A sample file follows:


"CN=Scott Bishop, OU=Employees, DC=contoso,DC=com",

This file, when imported, would create a user object in the Employees OU called Scott Bishop. The logon names, first, and last name are configured by the file. The object will be disabled initially. Once you have reset the password, you can enable the object.

See Also

For more information about the powerful CSVDE command, including details regarding its parameters and its usage to export directory objects, open the Windows Server 2003 Help and Support Center. The LDIFDE command, also covered in detail by the Help and Support Center, allows you to import and export accounts using LDAP formats. This command and its file structure is nowhere near as intuitive for administrators as the comma-delimited file supported by CSVDE.

Utilizing Active Directory Command-Line Tools

Windows Server 2003 supports a number of powerful command-line tools to facilitate the management of Active Directory. The following is a list, and brief description, of each tool:

  • DSADD Adds objects to the directory.

  • DSGET Displays (“gets”) properties of objects in the directory.

  • DSMOD Modifies select attributes of an existing object in the directory.

  • DSMOVE Moves an object from its current container to a new location.

  • DSRM Removes an object, the complete subtree under an object, or both.

  • DSQUERY Queries Active Directory for objects that match a specified search criteria. This command is often used to create a list of objects, which are then piped to the other command-line tools for management or modification.

These tools use one or more of the following components in their command-line switches:

  • Target object type One of a predefined set of values that correlate with an object class in Active Directory. Common examples are: computer, user, OU, group, and server (meaning domain controller).

  • Target object identity The distinguished name (DN) of the object against which the command is running. The DN of an object is an attribute of each object that represents the object’s name and location within an Active Directory forest.


    When using DNs in a command parameter, enclose the name in quotes when it includes spaces. If a subcomponent of the distinguished name includes a backslash or comma, see the online help topic listed below.

  • Server You can specify the domain controller against which you want to run the command.

  • User You can specify a user name and password with which to run the command. This is useful if you are logged in with non-administrative credentials and wish to launch the command with elevated credentials.

In addition, switches and parameters are case-insensitive, and can be prefixed with either a dash (“-”) or a slash (“/”).

See Also

This lesson will focus on the most commonly used commands and parameters, and on the use of these commands for user objects. For more information regarding these utilities, including the full list of parameters they accept, open the Help and Support Center and search for the phrase, “directory service command-line tools” and be sure to surround the phrase in quotes. After clicking Search, you will see the Command Line Reference on the list of Help Topics, under Search Results.


The DSQUERY command queries Active Directory for objects that match a specific criteria set. The command’s basic syntax is:

dsquery object_type [{StartNode | forestroot | domainroot}] [-o {dn | rdn | samid}]
[-scope {subtree | onelevel | base}] [-name Name] [-desc Description] [-upn UPN]
[-samid SAMName] [-inactive NumberOfWeeks] [-stalepwd NumberOfDays] [-disabled]
[{-s Server | -d Domain}] [-u UserName] [-p {Password | *}]


Keep in mind, this command will often be used to generate a list of objects against which you will run other command-line utilities. This is accomplished by piping the output to the second command. For example, the following command line queries Active Directory for a user object with a name starting with “Dan,” pipes the result set to DSMOD, which disables each object in the result set:

dsquery user -name Dan* | dsmod user -disabled yes

The other utilities accept DNs as their input, which is the default output type as well.

The basic parameters are summarized in Table 1.

Table 1. Parameters for the DSQUERY Command
Query scope
object_typeRequired. The object type represents the object class(es) which will be searched. The object type can include computer, contact, group, OU, server, user, or the wildcard “*” to represent any object class. This lesson will focus on the command’s use in querying for the user object type.
{StartNode forestroot | domainroot}Optional. Specifies the node from which the search begins. You can specify the forest root (forestroot), domain root (domainroot), or a node’s distinguished name (StartNode). If forestroot is specified, the search is performed using the global catalog. The default value is domainroot.
-scope {subtree | onelevel | base}Specifies the scope of the search. A value of subtree indicates that the scope is a subtree rooted at start node. A value of onelevel indicates the immediate children of start node only. A value of base indicates the single object represented by start node. If forestroot is specified as StartNode, subtree is the only valid scope. By default, the subtree search scope is used.
How to display the result set
-o {dn, rdn, samid}Specifies the format in which the list of entries found by the search will be outputted or displayed. A dn value displays the distinguished name of each entry. A rdn value displays the relative distinguished name of each entry. A samid value displays the Security Accounts Manager (SAM) account name of each entry. By default, the dn format is used.
Query criteria
-name NameSearches for users whose name attributes (value of CN attribute) matches Name. You can use wildcards. For example, “jon*” or “*ith” or “j*th”.
-desc DescriptionSearches for users whose description attribute matches Description. You can use wildcards.
-upn UPNSearches for users whose UPN attribute matches UPN.
-samid SAMNameSearches for users whose SAM account name matches SAMName. You can use wildcards.
-inactive NumberOfWeeksSearches for all users that have been inactive (stale) for the specified number of weeks.
-stalepwd NumberOfDaysSearches for all users who have not changed their passwords for the specified number of days.
-disabledSearches for all users whose accounts are disabled.
Domain controller and credentials used for the command
{-s Server | -d Domain}Connects to a specified remote server or domain.
-u UserNameSpecifies the user name with which the user logs on to a remote server. By default, -u uses the user name with which the user logged on. You can use any of the following formats to specify a user name:
-p {Password | *}Specifies to use either a password or a * to log on to a remote server. If you type *, you are prompted for a password.


Inactivity is specified in weeks, but password changes are specified in days.


The DSADD command enables you to create objects in Active Directory. When creating a user, utilize the DSADD USER command. DSADD parameters allow you to configure specific properties of an object. The parameters are self-explanatory, however the Windows Server 2003 Help And Support Center provides thorough descriptions of the DSADD command’s parameters if you desire more explanation.

dsadd user UserDN...

The UserDN... parameter is one or more distinguished names for the new user object(s). If a DN includes a space, surround the entire DN with quotation marks. The UserDN... parameter can be entered one of the following ways:

  • By piping a list of DNs from another command, such as DSQUERY.

  • By typing each DN on the command line, separated by spaces.

  • By leaving the DN parameter empty, at which point you can type the DNs, one at a time, at the keyboard console of the command prompt. Press ENTER after each DN. Press CTRL+Z and ENTER after the last DN.

The DSADD USER command can take the following optional parameters after the DN parameter:

  • -samid SAMName

  • -upn UPN

  • -fn FirstName

  • -mi Initial

  • -In LastName

  • -display DisplayName

  • -empid EmployeeID

  • -pwd {Password | *} where * will prompt you for a password

  • -desc Description

  • -memberof GroupDN;...

  • -office Office

  • -tel PhoneNumber

  • -email Email

  • -hometel HomePhoneNumber

  • -pager PagerNumber

  • -mobile CellPhoneNumber

  • -fax FaxNumber

  • -iptel IPPhoneNumber

  • -webpg WebPage

  • -title Title

  • -dept Department

  • -company Company

  • -mgr ManagerDN

  • -hmdir HomeDirectory

  • -hmdrv DriveLetter:

  • -profile ProfilePath

  • -loscr ScriptPath

  • -mustchpwd {yes | no}

  • -canchpwd {yes | no}

  • -reversiblepwd {yes | no}

  • -pwdneverexpires {yes | no}

  • -acctexpires NumberOfDays

  • -disabled {yes | no}

As with DSQUERY, you can add -s, -u, and -p parameters to specify the domain controller against which DSADD will run, and the user name and password—the credentials—that will be used to execute the command.

  • {-s Server | -d Domain}

  • -u UserName

  • -p {Password | *}

The special token $username$ (case-insensitive) may replace the SAM account name in the value of the -email, -hmdir, -profile, and -webpg parameters. For example, if a SAM account name is “Denise,” the -hmdir parameter can be written in either of the following formats:

  • -hmdir\users\Denise\home

  • -hmdir\users\$username$\home


The DSMOD command modifies the properties of one or more existing objects.

dsmod user UserDN ... parameters

The command handles the UserDN... parameter exactly as the DSADD command, and takes the same parameters. Of course now, instead of adding an object with properties, you are modifying an existing object. Note that the exceptions are that you cannot modify the SAMName (-samid parameter) or group membership (-memberof parameter) of a user object using the DSMOD USER command.

The DSMOD command also takes the -c parameter. This parameter puts DSMOD into continuous operation mode, in which it reports errors but continues to modify the objects. Without the -c parameter, DSMOD will stop operation at the first error.


The DSGET command gets, and outputs, selected properties of one or more existing objects.

dsget user UserDN ... parameters

The command handles the UserDN... parameter exactly as the DSADD command does, and takes the same parameters except that DSGET takes only the parameter and not an associated value. For example, DSGET takes the -samid parameter, not the -samid SAMName parameter and value. The reason for this is clear: You are displaying, not adding or modifying, a property. In addition, DSGET does not support the -password parameter because it cannot display passwords. DSGET adds the -dn and -sid parameters, which display the user object’s distinguished name and SID, respectively.


Keep track of the difference between DSQUERY and DSGET. DSQUERY finds and returns a result set of objects based on property-based search criteria. DSGET returns properties for one or more specified objects.


The DSMOVE command allows you to move or rename an object within a domain. It cannot be used to move objects between domains. Its basic syntax is:

dsmove ObjectDN [-newname NewName] [-newparent ParentDN]

DSMOVE also supports the -s, -u, and -p parameters described in the section regarding DSQUERY.

The object is specified using its distinguished name in the parameter ObjectDN. To rename the object, specify its new common name in the NewName parameter. Specifying the distinguished name of a container in the ParentDN parameter will move the object to that container.


DSRM is used to remove an object, its subtree, or both. The basic syntax is:

dsrm ObjectDN ... [-subtree [-exclude]] [-noprompt] [-c]

It supports the -s, -u, and -p parameters described in the section about DSQUERY.

The object is specified by its distinguished name in the ObjectDN parameter. The -subtree switch directs DSRM to remove the objects contents if the object is a container object. The -exclude switch excludes the object itself, and can be used only in conjunction with -subtree. Specifying -subtree and -exclude would, for example, delete an OU and its subtree, but leave the OU intact. By default, without the -subtree or -exclude switches, only the object is deleted.

You will be prompted to confirm the deletion of each object, unless you specify the -noprompt parameter. The -c switch puts DSRM into continuous operation mode, in which errors are reported but the command keeps processing additional objects. Without the -c switch, processing halts on the first error.

Top 10
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Finding containers and lists in Visio (part 2) - Wireframes,Legends
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Finding containers and lists in Visio (part 1) - Swimlanes
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Formatting and sizing lists
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Adding shapes to lists
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Sizing containers
- Microsoft Access 2010 : Control Properties and Why to Use Them (part 3) - The Other Properties of a Control
- Microsoft Access 2010 : Control Properties and Why to Use Them (part 2) - The Data Properties of a Control
- Microsoft Access 2010 : Control Properties and Why to Use Them (part 1) - The Format Properties of a Control
- Microsoft Access 2010 : Form Properties and Why Should You Use Them - Working with the Properties Window
- Microsoft Visio 2013 : Using the Organization Chart Wizard with new data
Video Sports
programming4us programming4us