@For /f "tokens=1-2 delims=: " %%a in ('time /t') do (set time=%%a:%%b)
@For /f "tokens=1-3 delims=/ " %%a in ('date /t') do (set date=%%a%%b%%c)
@for /f "skip=1 tokens=1-8 delims=," %%a in (adusers.csv) do (
@echo %date% %time% dsadd user %%a To ou=%%b dc=%%c.%%d >>adduser_log.txt
dsadd user "cn=%%a,ou=%%b,dc=%%c,dc=%%d" -upn %%e@%%c.%%d -samid %%f -pwd %%g 2>>adduser_log.txt)
文件二:adusers.csv
cn,ou,dc,dc,:-upn,samid-samid,密码(-pwd),:-disable,姓-fn,名-ln,部门-dept,profile(hmdir),网盘(-hmdrv), :-mustchpwd
fin1,fins,lin,com,fin1,fin1,a,no,,,fin,\\dc\profile\%username%,\\dc\share\%username%,yes
fin2,fins,lin,com,fin2,fin2,a,no,,,fin,\\dc\profile\%username%,\\dc\share\%username%,yes
fin3,fins,lin,com,fin3,fin3,a,no,,,fin,\\dc\profile\%username%,\\dc\share\%username%,yes
fin4,fins,lin,com,fin4,fin4,a,no,,,fin,\\dc\profile\%username%,\\dc\share\%username%,yes
fin5,fins,lin,com,fin5,fin5,a,no,,,fin,\\dc\profile\%username%,\\dc\share\%username%,yes
fin6,fins,lin,com,fin6,fin6,a,no,,,fin,\\dc\profile\%username%,\\dc\share\%username%,yes
说明:
Skip=1 跳过第一行
Eol=; 行结束则执行for循环
Tokens=1-10 共有10个变量
Delims=, 变量之间的分隔符为“,”
%a in(e:\ADUSER.csv) 变量a的读取路径为: e:\ADUSER.csv
Dsadd user 创建一个对象,对象类型为用户
Cn=%a 对象的CN(通用名称,也就是对象的名字)为: 变量a
Ou=财务部, dc=abc, dc=com 用户的DN(可辨识名称,也就是在AD中的位置)
-upn %b@abc.com 用户登录到域时所使用的登录名称是: 变量b@abc.com
-samid %b 用户在win2000之前的操作系统上登录到域是所使用的登录名称是: 变量b
-pwd %c 用户登录密码是: 变量c
-fn %e 用户名: 变量e
-ln %d 用户姓: 变量d
-dept %f 用户所属部门:变量f
–office %g 用户办公室: 变量g
-tel %h 用户电话号码: 变量h
-title %i 用户职务:变量i
-email %j 用户电子邮件地址:变量j
-mustchpwd yes 用户下次登录是否必须更改密码。Yes
-canchpwd yes 用户是否可以更改密码? Yes
-disabled yes 用户已禁用? Yes
-profile \\file\profiles\%b 用户配置文件路径和名称: \\file\profiles\%b
-hmdir \\file\主文件夹\%b\ 用户主文件夹路径和名称: \\file\主文件夹\%b\
-hmdrv Z: 用户主文件夹映射到本地驱动器盘符号为: Z盘