天天看点

批量添加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 %%[email protected] -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 /? - 将配额添加的目录的帮助

dsquery /? - 查找与搜索标准匹配对象的帮助。

dsadd 失败:参数不正确。

请键入 dsadd /? 以查看帮助。

以下是我的脚本:

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

pause

user.txt内容:

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

继续阅读