昨天与华三工程师一起在中外运做iNode压力测试,需要在WIN2003上增加400个用户,大学时候对域很了解,工作后做的项目涉及到域很少,安东石油涉及到域的操作,记得有批处理增加AD用户,可是让我郁闷的是上次用的脚本修改后,这次却一直提示失败!
网上找了好多资料,终于在下班之前找到一个能行得通的域批量增加用户的文章,解决了短时间增加400个用户的问题,很有一种收获的感觉。文章如下:
第一部分
情景:新建域环境,需要创建大批用户帐号。
环境: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 还有许多开关符,可以根据需要自己添加。我关注的选项中有些默认值就是符合需求的,所以在命令行中没有出现。