批量添加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