批量添加AD账号(一)

简介:

批量添加windows 2003 AD账号,网上有好几种方法。本人收集了几篇。

 

主要涉及到的命令有:

1、dsadd

2、csvde

 

依次记录,以备以后用。

下面是第一种:

第一部分


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


环境: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 还有许多开关符,可以根据需要自己添加。我关注的选项中有些默认值就是符合需求的,所以在命令行中没有出现。






第三部分




以下内容为活动目录增加用户或组的相关参数


C:\Documents and Settings\Administrator>dsadd
描述: 此工具命令将一些具体的对象类型添加到目录。dsadd 命令:


dsadd computer - 将计算机添加到目录。
dsadd contact - 将联系人添加到目录。
dsadd group - 将组添加到目录。
dsadd ou - 将组织单位添加到目录。
dsadd user - 将用户添加到目录。
dsadd quota - 将配额规定添加到目录分区。


要查找具体命令的帮助,请键入 "dsadd <ObjectType> /?",这里的
<ObjectType> 是上面显示的一个受支持对象的类型。
例如,dsadd ou /?。


备注:
可分辨名称中不是用作分隔符的逗号必须用反斜杠 ("\") 字符转义
(例如,"CN=Company\, Inc.,CN=Users,DC=microsoft,DC=com")。
用在可分辨名称中的反斜杠必须用一个反斜杠转义(例如,
"CN=Sales\\ Latin America,OU=Distribution Lists,DC=microsoft,DC=com")。


目录服务命令行工具帮助:
dsadd /? - 添加对象的帮助。
dsget /? - 显示对象的帮助。
dsmod /? - 修改对象的帮助。
dsmove /? - 移动对象的帮助。
dsquery /? - 查找匹配搜索标准对象的帮助。
dsrm /? - 删除对象的帮助。




C:\Documents and Settings\Administrator>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 <Phone#>]
        [-email <Email>] [-hometel <HomePhone#>] [-pager <Pager#>]
        [-mobile <CellPhone#>] [-fax <Fax#>] [-iptel <IPPhone#>]
        [-webpg <WebPage>] [-title <Title>] [-dept <Department>]
        [-company <Company>] [-mgr <Manager>] [-hmdir <HomeDir>]
        [-hmdrv <DriveLtr:>] [-profile <ProfilePath>] [-loscr <ScriptPath>]
        [-mustchpwd {yes | no}] [-canchpwd {yes | no}]
        [-reversiblepwd {yes | no}] [-pwdneverexpires {yes | no}]
        [-acctexpires <NumDays>] [-disabled {yes | no}]
        [{-s <Server> | -d <Domain>}] [-u <UserName>]
        [-p {<Password> | *}] [-q] [{-uc | -uco | -uci}]


参数:


值                      描述
<UserDN>                需要项。要添加的用户可分辨名称(DN)。如果目标对象
                        被省略,将从标准输入(stdin)中读取。
-samid <SAMName>        设置用户的 SAM 帐户名为 <SAMName>。如果没有指定,
                        dsadd 会使用 <UserDN> 公用名(CN)里的前 20 个字符
                        创建 SAM 帐户名。
-upn <UPN>              设置 upn 值为 <UPN>。
-fn <FirstName>         设置用户名为 <FirstName>。
-mi <Initial>           设置用户中间名首字母为 <Initial>。
-ln <LastName>          设置用户姓为 <LastName>。
-display <DisplayName> 设置用户显示名为 <DisplayName>。
-empid <EmployeeID>     设置用户雇员 ID 为 <EmployeeID>。
-pwd {<Password> | *}   设置用户密码为 <Password>。如果是 *,会提示您输入
                        密码。
-desc <Description>     设置用户描述为 <Description>。
-memberof <Group ...>   把用户设置成一个或多个组成员 <Group ...>
-office <Office>        设置用户办公室位置为 <Office>。
-tel <Phone#>           设置用户电话号码为 <Phone#>。
-email <Email>          设置用户电子邮件地址为 <Email>。
-hometel <HomePhone#>   设置用户家庭电话号码为 <HomePhone#>。
-pager <Pager#>         设置用户寻呼机号码为 <Pager#>。
-mobile <CellPhone#>    设置用户移动电话号码为 <CellPhone#>。
-fax <Fax#>             设置用户传真号码为 <Fax#>。
-iptel <IPPhone#>       设置用户的 IP 电话号码为 <IPPhone#>。
-webpg <WebPage>        设置用户的网页 URL 为 <WebPage>。
-title <Title>          设置用户的职务为 <Title>。
-dept <Department>      设置用户的部门为 <Department>。
-company <Company>      设置用户的公司信息为 <Company>。
-mgr <Manager>          设置用户的经理为 <Manager> (格式是 DN)。
-hmdir <HomeDir>        设置用户主目录为 <HomeDir>。如果它是 UNC 路径,一个
                        将映射到此路径的驱动器号必须也要用 -hmdrv 指定。
-hmdrv <DriveLtr:>      设置用户主驱动器号为 <DriveLtr:>
-profile <ProfilePath> 设置用户的配置文件路径为 <ProfilePath>。
-loscr <ScriptPath>     设置用户的登录脚本路径为 <ScriptPath>。
-mustchpwd {yes | no}   用户在下次登录时是否更改密码。默认值: no。
-canchpwd {yes | no}    用户是否可以更改密码。如果 -mustchpwd 是 "yes",
                        它应该是 "yes"。默认值: yes。
-reversiblepwd {yes | no}
                        是否使用可逆的加密保存密码。默认值: no。
-pwdneverexpires {yes | no}
                        用户密码是否永远不过期。默认值: no。
-acctexpires <NumDays> 设置用户帐户从今天起在 <NumDays> 天内过期。0 值
                        意味着今天结束后帐户就过期; 正数值意味着帐户在未
                        来过期; 负数意味着该帐户已经过期并将过期日期设置
                        在过去; 字符串值 "never" 意味着该帐户永远不过期。
-disabled {yes | no}    用户帐户是否禁用。默认值: no。
{-s <Server> | -d <Domain>}
                        -s <Server> 使用名称 <Server> 连接到域控制器 (DC)。
                        -d <Domain> 在域 <Domain> 连接一个 DC。
                        默认值: 在登录域的 DC。
-u <UserName>           作为 <UserName> 连接。默认值: 该登录的用户。用户名
                        可以是: 用户名,域\用户名或用户主体名称(UPN)。
-p {<Password> | *}     用户的密码 <UserName>。如果已输入 *,会提示您输
                        入密码。
-q                      安静模式: 不在标准输出显示任何输出。
{-uc | -uco | -uci}     -uc 指定从管道的输入或至管道输出用 Unicode 格式。
                        -uco 指定至管道或文件的输出用 Unicode 格式。
                        -uci 指定从管道或文件的输入用 Unicode 格式。


备注:
如果您在命令提示没有提供目标对象,会从标准输入(stdin)获取目标对象。可以
从键盘、重定向文件或从另一个命令的管道输出接受 Stdin 数据。要从键盘或在
重定向文件中标记 stdin 数据的结束,请使用 Control+Z 表示文件结束(EOF)。


如果您提供的值包含空格,请在文字两边使用引号(例如,"CN=John Smith,
CN=Users,DC=microsoft,DC=com")。如果您输入了多个值,这些值必须用空格隔开
(例如,一个可分辨名称列表)。


特殊令牌 $username$ (不区分大小写)可以用来把 SAM 帐户名放在一个参数的值。
例如,如果目标用户 DN 是 CN=Jane Doe,CN=users,CN=microsoft,CN=com,
SAM 帐户名属性是 "janed",-hmdir 参数能有以下替换值:


-hmdir \users\$username$\home


-hmdir 参数的值被修改为以下值:


-hmdir \users\janed\home


另请参阅:
dsadd computer /? - 将计算机添加到目录的帮助。
dsadd contact /? - 将联系人添加到目录的帮助。
dsadd group /? - 将组添加到目录的帮助。
dsadd ou /? - 将组织单位添加到目录的帮助。
dsadd user /? - 将用户添加到目录的帮助。
dsadd quota /? - 将配额添加的目录的帮助


目录服务命令行工具帮助:
dsadd /? - 添加对象的帮助。
dsget /? - 显示对象的帮助。
dsmod /? - 修改对象的帮助。
dsmove /? - 移动对象的帮助。
dsquery /? - 查找与搜索标准匹配对象的帮助。
dsrm /? - 删除对象的帮助。


dsadd 失败:参数不正确。
请键入 dsadd /? 以查看帮助。


以下是我的脚本:


For /F "tokens=1,2,3" %%a in (User.txt) do dsadd user CN=%%a,OU=users,DC=bing51027,DC=Com -upn %%a@bing51027.com -display %%b -pwd %%c -pwdneverexpires yes -dept sales
pause

user.txt内容:

zhangsan 张三 A100@s200

lisi 李四 A120@y200

本文转自    yuxye   51CTO博客,原文链接:http://blog.51cto.com/fishvsfrog/761483



相关文章
|
弹性计算 数据安全/隐私保护
基于IDaaS的AD账号同步
通过IDaaS产品,把客户AD域和云上RAM账号体系打通,并实现准实时的同步。
基于IDaaS的AD账号同步
|
数据安全/隐私保护 Windows
|
数据安全/隐私保护