近期公司准备启用AD域,在前雇主处都是使用现成的,这次算是从头开始。AD域的安装部署这两就不讲了,部署完建用户时会有一个不大不小的麻烦,几百个用户批量建立起来虽有不便,查找相关资料发现可以使用 dsadd命令进行批量添加。
先放出我的脚本参数:
for /f "tokens=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 delims=," %a in (d:\user.txt) do dsadd user "cn=%a,ou=产品研发中心,dc=xxx,dc=com" -display %b -samid %c -upn %d@xxx.com -email %e -fn %f -ln %g -title %h -dept %i -desc %j -company %k -pwd %l -mustchpwd %m -canchpwd %n -acctexpires %o -disabled no
这里我定义了15个参数,分表从文件的a-o15列,并指定了for循环使用的文件d盘根目录的user.txt。
附一个示例文件(第一行注释了 dsadd的参数,第二行标注了AD与字段名)详细的字段域参数对照表参见后文搬运自互联网的资料。
cn | -display | -samid | -upn | -fn | -ln | -title | -dept | -desc | -company | -pwd | -mustchpwd | -canchpwd | -acctexpires | |
cn | displayName | sAMAccountName | userPrincipalName | sn | givenName | title | department | description | company | password | pwdLastSet | userAccountControl | NumberOfDays | |
jianglei | 姜磊 | jianglei | jianglei | jianglei@xxxx.com | 姜 | 磊 | AI算法工程师 | 产品研发中心/智能硬件部 | 普通用户 | xx科技 | 123123 | yes | yes | 90 |
搬运一些源于互联网的资料作为前提:
DSADD的语法:
dsadd computer - 将计算机添加到目录
dsadd contact - 将联系人添加到目录
dsadd group - 将组添加到目录。
dsadd ou - 将组织单位添加到目录
dsadd user - 将用户添加到目录。
语法
dsadd user UserDN [-samid SAMName] [-upn UPN] [-fn FirstName] [-mi Initial] [-ln LastName] [-display DisplayName] [-empid EmployeeID] [-pwd {Password | *}] [-desc Description] [-memberof Group;...] [-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 Manager] [-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}] [{-s Server | -d Domain}] [-u UserName] [-p {Password | *}] [-q] [{-uc | -uco | -uci}]
参数详解:
参数
UserDN
必需。指定要添加的用户的可分辨名称。如果省略可分辨名称,则将从标准输入 (stdin) 中获取该名称。
-samid SAMName
指定 SAM 名称作为该用户的唯一 SAM 帐户名(例如,Linda)。如果未指定,dsadd 将尝试使用 UserDN 的公用名 (CN) 值的至多前 20 个字符创建 SAM 帐户名。
-upn UPN
指定要添加的用户的用户主体名称(例如 )。
-fn FirstName
指定要添加的用户的名字。
-mi Initial
指定要添加的用户的中间名首字母。
-ln LastName
指定要添加的用户的姓氏。
-display DisplayName
指定要添加的用户的显示名。
-empid EmployeeID
指定要添加的用户的雇员 ID。
-pwd {Password | *}
指定将用户密码设置为 Password 或 *。如果设置为 *,将提示您输入用户密码。
-desc Description
指定要添加的用户的描述。
-memberof GroupDN ...
指定希望用户加入的组的可分辨名称。
-office Office
指定要添加的用户的办公室位置。
-tel PhoneNumber
指定要添加的用户的电话号码。
-email Email
指定要添加的用户的电子邮件地址。
-hometel HomePhoneNumber
指定要添加的用户的家庭电话号码。
-pager PagerNumber
指定要添加的用户的寻呼机号码。
-mobile CellPhoneNumber
指定要添加的用户的移动电话号码。
-fax FaxNumber
指定要添加的用户的传真号码。
-iptel IPPhoneNumber
指定要添加的用户的 IP 电话号码。
-webpg WebPage
指定要添加的用户的 Web 页的 URL。
-title Title
指定要添加的用户的称谓。
-dept Department
指定要添加的用户的部门。
-company Company
指定要添加的用户的公司信息。
-mgr ManagerDN
指定要添加的用户的管理器的可分辨名称。
-hmdir HomeDirectory
指定要添加的用户的主目录位置。如果 HomeDirectory 是作为通用命名约定 (UNC) 路径给出,则必须使用 -hmdrv 参数指定要映射到此路径的驱动器号。
-hmdrv DriveLetter:
指定要添加的用户的主目录驱动器号(例如,E:)。
-profile ProfilePath
指定要添加的用户的配置文件路径。
-loscr ScriptPath
指定要添加的用户的登录脚本路径。
-mustchpwd {yes | no}
指定用户是否必须在下次登录时更改其密码(yes 必须更改,no 不必更改)。默认情况下,用户不必更改密码 (no)。
-canchpwd {yes | no}
指定用户是否可以更改其密码(yes 可以更改,no 根本不能更改)。默认情况下,允许用户更改密码 (yes)。如果 -mustchpwd 参数的值为 yes,则该参数的值必须为 yes。
-reversiblepwd {yes | no}
指定是否应使用可逆加密来存储用户密码(yes 表示应该,no 表示不应该)。默认情况下,用户不能使用可逆加密 (no)。
-pwdneverexpires {yes | no}
指定用户密码是否永不过期(yes 表示是,no 表示不是)。默认情况下,用户密码会过期 (no)。
-acctexpires NumberOfDays
指定从今天算起用户帐户将到期的天数。0 值表示将今天的结束时间设置为到期时间。正值表示将将来的时间设置为到期时间。负值表示将以前的时间设置为到期时间。值 never 将帐户设置为永不过期。例如,0 值表示该帐户在今天结束时过期。值 -5 表示该帐户 5 天前就已经到期,并将以前的时间设置为到期日期。值 5 表示该帐户将在 5 天后到期。
-disabled {yes | no}
指定是否禁用用户帐户登录(yes 禁用登录,no 允许登录)。默认情况下,启用用户帐户登录 (no)。
{-s Server | -d Domain}
连接到指定的远程服务器或域。默认情况下,计算机与登录域中的域控制器相连接。
-u UserName
指定用户要用于登录到远程服务器的用户名。默认情况下,-u 使用用户登录时的用户名。您可以使用下列任一格式指定用户名:
用户名(例如 Linda)
域\用户名(例如 widgets\Linda)
用户主体名称 (UPN)(例如 )
-p {Password | *}
指定使用密码或 * 登录到远程服务器。如果键入 *,将提示您输入密码。
-q
将所有输出降低为标准输出(安静模式)。
Dsadd user的语法内容比较多大家可以参考自己的实际情况去跟相应的参数。