2003批量创建域用户帐号
第一部分

情景:新建域环境,需要创建大批用户帐号。

环境:Windows Server 2003 + SP2 (DC)

操作:

1、在C盘根目录下创建 add.cmd 和 UserList.txt 两个文件。虚线内为实际内容。

add.cmd (文件内容为一行,无回车)
======================================================

For /F "tokens=1,2" %%a in (UserList.txt) do dsadd user CN=%%a,OU=test,DC=altn,DC=Com -upn %%a@altn.com -display %%b -pwd p@ssw0rd -pwdneverexpires yes
======================================================

UserList.txt (拼音和中文名之间有一个空格)
======================================================

zhangsan 张三
lisi 李四
wangwu 王五
======================================================

2、运行 add.cmd ,搞定。

 第二部分

仅从操作过程来看非常简单,但有细节之处。

1、dsadd user 是 Windows Server 2003 才具备的工具。

2、UserList.txt 内的原始数据还是需要手工输入的。

3、For语句将读取UserList.txt,把每行第一个空格前的内容赋予变量%%a,空格后的内容赋予变量%%b。For语句中tokens的含义是关键。后面一部分则是dsadd user的命令,可以根据自己的需求修改域名和OU名,如果直接创建在默认的Users文件下的话就把OU=test改成CN=Users。(域中已存在的OU)

4、我在创建用户时关注的一些选项以及这些选项在dsadd中的对应开关符

(1)用户登录名     (-upn <UPN>    设置 upn 值为 <UPN>。)

(2)win2000以前版本的用户登录名   (设置了upn会自动生成)

(3)密码永不过期 (-pwdneverexpires {yes | no} 用户密码是否永远不过期。默认值: no。)

(4)账户永不过期  (-acctexpires <NumDays>  设置用户帐户从今天起在 <NumDays> 天内过期。0 值
                                   意味着今天结束后帐户就过期; 正数值意味着帐户在未
                                   来过期; 负数意味着该帐户已经过期并将过期日期设置
                                   在过去; 字符串值 "never" 意味着该帐户永远不过期。)

(5)用户显示名      (-display <DisplayName>  设置用户显示名为 <DisplayName>。)

(6)登录密码         (-pwd {<Password> | *}   设置用户密码为 <Password>。如果是 *,会提示您输入密码。)

(7)用户下次登录是否修改密码 (-mustchpwd {yes | no}   用户在下次登录时是否更改密码。默认值: no。)

(8)账户是否禁用  (-disabled {yes | no}    用户帐户是否禁用。默认值: no。)

5、dsadd user 还有许多开关符,可以根据需要自己添加。我关注的选项中有些默认值就是符合需求的,所以在命令行中没有出现。