批量添加AD账号(三)


批量添加域用户
一、 AD用户帐户复制
1、在“ AD域和计算机”中建一个作为样板的用户,如S1。
2、设置相关需要的选项,如所属的用户组、登录时间、用户下次登录时需更改密码等。
3、在 S1上/右键/复制,输入名字和口令。
说明:
1、 只有 AD域用户帐户才可以复制,对于本地用户帐户无此功能。
2、 帐户复制可将在样板用户帐户设置的大多数属性带过来。具体如下:
选项卡
复制到新用户账号的属性
常规
地址
除了“街道”之外所有
账户
除了“用户登录名”之外所有
配置文件
除“配置文件路径”和“主文件夹”。欲复制它们,应该使用 %username%变量,如:file://server/share/%username
电话
单位
除了“职务”之外所有
隶属于
全部
拨入
无,将默认值应用于新账户
环境
无,将默认值应用于新账户
会话
无,将默认值应用于新账户
远程控制
无,将默认值应用于新账户
终端服务配置文件
无,将默认值应用于新账户
 
二、比较csvde与ldifde
csvde: 逗号分隔符目录交换工具
允许您使用  CSV 源文件将新对象导入到 Active Directory 中;此外,该工具还提供了将现有对象导出到 CSV 文件的功能。CSVDE 不能用于修改现有对象;在导入模式下使用此工具时,您只能创建全新的对象。
使用  CSVDE 导出现有对象的列表相当简单。将 Active Directory 对象导出到名为 ad.csv 的文件,方法如下:
csvde –f ad.csv
–f 开关表示后面为输出文件的名称。但是您必须注意,根据环境的不同,此基本语法可能会生成不实用的大型输出文件。要将此工具 限制为仅导出特定组织单位 (OU) 中的对象,可以将语句修改为如下形式:
csvde –f UsersOU.csv –d u=Users,dc=contoso,dc=com
进一步假定您只对将用户对象导出到  CSV 文件感兴趣。如果是那样的话,您可以添加 –r 开关和 –l 开关,前者允许指定轻型目录访问协议 (LDAP) 筛选器进行搜索,后者可以限制导出的属性的数量(请注意以下所有内容位于一行):
csvde –f UsersOnly.csv –d u=Users,dc=contoso,dc=com –r 
    "(&(objectcategory=person)(objectclass=user))" –l 
    DN,objectClass,description
通过  –i 开关,您可以将对象从源 CSV 文件导入到 Active Directory。但是,使用 CSVDE 创建用户对象存在一个关键限制:不能使用 CSVDE 设置用户密码。因此,应该避免使用 CSVDE 创建用户对象。
ldifde: 轻型目录访问协议,互换格式目录交换
与  CSVDE 相比,此工具更强大,更灵活。除了可以创建新对象外, LDIFDE 还可以修改和删除现有对象,甚至扩展 Active Directory 架构 。LDIFDE 虽然具有灵活性,但为了实现这种灵活性却必须要使用扩展名为  .ldf 的 LDIF 文件作为输出文件,这种文件与简单的 CSV 文件相比,格式更复杂。(只需少量操作就可以配置好用户密码,我稍后将对此进行介绍。)
我们从一个简单的示例开始,将某个  OU 中的用户导出到 LDF 文件中(请注意以下所有内容位于一行):
ldifde -f users.ldf -s DC1.contoso.com -d "ou=UsersOU,dc=contoso,dc=com"
       –r "(&(objectcategory=person)(objectclass=user))"
与大多数命令行工具一样,您可以通过运行  LDIFDE /? 命令找到 LDIFDE 开关的完整说明。图 1介绍了我在此使用过的开关。(注意 CSVDE 和 LDIFDE 命令的开关实际上是相同的。)
LDIFDE 的真正功能在于创建和操作对象。然而,进行此操作之前,您首先需要创建一个输入文件。以下语句创建两个名为  afuller 和 rking 的用户帐户;要创建该输入文件,请在记事本(或者您喜欢的纯文本编辑器)中输入以下文本,然后将其保存为  NewUsers.ldf:
dn: CN=afuller, U=UsersOU, DC=contoso, DC=com 
changetype: add 
cn: afuller
objectClass: user 
samAccountName: afuller 

dn: CN=rking, U=UsersOU, DC=contoso, DC=com 
changetype: add 
cn: rking
objectClass: user 
samAccountName: rking
创建完该文件后,请运行以下命令:
ldifde –i –f NewUsers.ldf –s DC1.contoso.com
您可能会猜到,此处使用的唯一新开关  -i 表明这是一项导入操作而非导出操作。如果要修改或删除现有对象,不必更改 LDIFDE 命令的语法;相反,您应该修改 LDF 文件中的内容。要更改用户帐户的说明字段,请创建名为 ModifyUsers.ldf 的文本文件。
您可以通过运行与之前相同的  LDIFDE 命令语法,在 -f 开关后面指定新的 LDF 文件名来导入更改。用于删除对象的  LDF 格式更简单;要删除一直使用的用户,请创建一个名为 DeleteUsers.ldf 的文件,然后输入以下内容:
dn: CN=afuller U=UsersOU, DC=contoso, DC=com 
changetype: delete
 
dn: CN=rking, U=UsersOU, DC=contoso, DC=com 
changetype: delete
注意,与  CSVDE 不同,LDIFDE 能够配置用户密码。不过,在为用户帐户配置 unicodePWD 属性之前,必须在域控制器上配置安全套接字层/传输层安全性 (SSL/TLS) 加密。
而且, LDIFDE 能够创建和修改任何类型的 Active Directory 对象,并不仅限于用户帐户。例如,下面的 LDF 文件可在 contoso.com 林的架构中创建名为 EmployeeID-example 的自定义架构扩展:
dn: cn=EmployeeID-example,cn=Schema,
cn=Configuration,dc=contoso,dc=com
changetype: add
adminDisplayName: EmployeeID-Example
attributeID: 1.2.3.4.5.6.6.6.7
attributeSyntax: 2.5.5.6
cn: Employee-ID
instanceType: 4
isSingleValued: True
lDAPDisplayName: employeeID-example
由于  LDIFDE 文件使用工业标准 LDAP 文件格式,因此需要修改 Active Directory 架构的第三方应用程序会经常提供 LDF 文件,您可以在将这些更改应用于生产环境之前使用这些文件检查和批准更改。
 
三、以csvde.exe为例说明:域用户帐户的导出/导入
  操作步骤如下:
1、 在“ AD域和计算机”中建一个用户,如S1。
2、 设置相关需要的选项,如所属的用户组、登录时间、用户下次登录时需更改密码等。
3、 在 DC上,开始/运行:cmd
4、 键入: csvde –f demo.csv
说明:( 1)不要试图将这个文件导回,来验证是否好使。因为这个文件中的好多字段在导入时是不允许用的,如:ObjectGUID、objectSID、pwdLastSet 和 samAccountType 等属性。我们导出这个文件目的只是为了查看相应的字段名是什么,其值应该怎么写。
  ( 2)可通过-d –r参数指定导出范围和对象类型。例如:
    -d “ou=test,dc=mcse,dc=com” 或 -d “cn=users,dc=mcse,dc=com”
    -r “< Objectclass=user>”
5、 以上面的文件为参考基础,创建自己的 my.csv,并利用复制、粘贴、修改得到多条记录(注意大小写)。例如:
DN,objectClass,sAMAccountName,userAccountControl,userPrincipalName
"CN=s1,OU=test,DC=mcse,DC=com",user,S1,512,S1@mcse.com
"CN=s2,OU=test,DC=mcse,DC=com",user,S2,512,S2@mcse.com
………………
其它可用字段,我试了一下,见下表(不全):  

 
用户账户属性
“常规”标签
Sn
Givename
英文缩写
Initials
显示名称
displayName
描述
Description
办公室
physicalDeliveryOfficeName
电话号码
telephoneNumber
电话号码
其他 otherTelephone 多个以英文分号分隔
电子邮件
Mail
网页
wWWHomePage
网页
其他 url多个以英文分号分隔
“地址”标签
国家 /地区
C 如:中国 CN,英国GB
省 /自治区
St
市 /县
L
街道
streetAddress
邮政信箱
postOfficeBox
邮政编码
postalCode
“账户”标签
用户登录名
userPrincipalName 形如: S1@benet.com
用户登录名
(以前版本)
sAMAccountName 形如: S1
登录时间
logonHours
登录到
userWorkstations多个以英文逗号分隔
用户账户控制
userAccountControl
(启用: 512,禁用:514,密码永不过期:66048)
账户过期
accountExpires
“配置文件”标签
配置文件路径
profilePath
登录脚本
scriptPath
主文件夹
本地路径  homeDirectory
连接  homeDrive(盘符)
到  homeDirectory
“电话”标签
家庭电话
homePhone(若是其他,在前面加 other)
寻呼机
Pager 如: otherhomePhone
移动电话
mobile若多个以英文分号分隔
传真
FacsimileTelephoneNumber
IP电话
ipPhone
注释
Info
“单位”标签
职务
Title
部门
Department
公司
Company
“隶属于”标签
隶属于
memberOf 用户组的 DN不需要使用引号,多个用分号分隔
“拨入”标签
远程访问权限
(拨入或 VPN)
msNPAllowDialin
(允许访问值为: TRUE ;拒绝访问值为:FALSE)
回拨选项
msRADIUSServiceType
(由呼叫方设置或回拨到 值: 4)
总是回拨到
msRADIUSCallbackNumber
 
说明:有些标签平常极少用到,就没有试。如果需要可以自己导出来看一下,像一些复杂的字段,如: userParameters,还是用粘贴吧。
6、导入到AD,键入 csvde –i –f my.csv –j c:\
说明: -j用于设置日志文件位置,默认为当前路径。此选项可帮助用户在导入不成功时排错。
有一点大家必须明确的是:我们在这里做AD域用户帐户复制、做AD域用户帐户的导出/导入,并不能代替“AD备份和恢复”。我们只是在批量创建用户帐号,帐号的SID都是重新生成的,权利权限都得重新设才行。(当然我们可以把导入的用户,通过memberof字段设到一些用户组中去,使它有权利权限。但这与利用“AD备份和恢复”到原状,完全是两回事)。 作为网管,有时我们需要批量地向AD域中添加用户帐户,这些用户帐户既有一些相同的属性,又有一些不同属性。如果逐个添加、设置的话,十分地麻烦。一般来说,如果不超过10个,我们可利用AD用户帐户复制来实现。如果再多的话,我们就应该考虑使用csvde.exe或ldifde.exe来减轻我们的工作量了。  
 
 
除了用于执行批量导入和导出操作的工具外, Windows Server 2003 还包括一个内置工具集,您可以使用它来创建、删除和修改各种 Active Directory 对象,还可以对符合特定条件的对象执行查询。(请注意 Windows 2000 Active Directory 并不支持这些工具,如 dsadd、dsrm、dsget 和 dsquery 等。)

dsadd
Dsadd 用于在特定的目录分区上创建  Active Directory 对象类的实例。这些类包括用户、计算机、联系人、组、组织单位和配额。Dsadd 具备一个由下列内容组成的通用语法:
dsadd <ObjectType> <ObjectDistinguishedName> attributes
请注意,您创建的每个对象类型都有一组特定的开关,它们与该类型的属性相对应。以下命令创建一个填充了各种属性的用户对象(请注意以下所有内容位于一行):
dsadd user cn=afuller,ou=IT,dc=contoso,dc=com 
–samID afuller –fn Andrew –ln Fuller –pwd * 
-memberOf cn=IT,ou=Groups,dc=contoso,dc=com "cn=Help Desk,ou=Groups,
dc=contoso,dc=com" 
–desc "Marketing Director"
–memberOf 开关要求指定应添加该用户的每个组的完整可分辨名称  (DN);如果要将用户添加到多个组,您可以添加多个 DN 并用空格分隔开。
任何元素如果包含空格(如  Help Desk 组的 DN),则该元素应该括在双引号中。如果某个元素含有反斜杠(如称为 IT\EMEA 的 OU),则必须输入两次反斜杠:IT\\EMEA。(这些要求适用于所有的 ds* 工具。)
如果使用  -pwd * 开关,则系统将提示您在命令行输入用户密码。您可以在该命令中指定密码 (-pwd P@ssword1),但是这样会在屏幕上或该命令嵌入到的任何文本或脚本文件中以纯文本形式显示该密码。
同样,您可以使用下列两个命令创建组对象和  OU:
dsadd computer cn=WKS1,ou=Workstations,dc=contoso,dc=com
dsadd ou "ou=Training OU,dc=contoso,dc=com"



 
Dsmod
Dsmod 用于修改现有对象,它的使用方法与  dsadd 非常相似,您需要根据要修改的对象的类型使用不同的子菜单和语法。以下 dsmod 语句会更改用户的密码并修改该用户的帐户,因此在下次登录时系统会提示该用户更改为新的密码:
dsmod user "cn=afuller,ou=IT,dc=contoso,dc=com" –pwd P@ssw0rd1
    –mustchpwd yes
要了解这些开关多么相似,您可以查看要用于创建此用户并配置了相同属性的  dsadd 语法:
dsadd user "cn=afuller,ou=IT,dc=contoso,dc=com" –pwd P@ssw0rd1
    –mustchpwd yes
您可以清晰地看到,如果知道  dsadd 中用于创建对象的开关,则可以使用那些相同的开关修改 dsmod 用户。

dsrm
dsrm 与  dsadd 是相逆的;正如您可能想到的,使用此工具可从命令行中删除对象。基本的 dsrm 语法相当简明:只需输入 dsrm 后输入要删除对象的可分辨名称即可,如下所示:
dsrm cn=WKS1,ou=Workstations,dc=contoso,dc=com
默认情况下, dsrm 会提示“确实要删除此对象吗?”,此时键入 Y,然后按 Enter。您可以使用 –noprompt 开关禁止显示此提示,但很明显,这样做无法在删除对象之前确认所选对象是否正确。如果要删除容器对象(即,在其内部可能包含其他对象的组织单位),另外两个开关可能会很有用。以下命令将删除 TrainingOU 组织单位及其内部包含的所有对象:
dsrm u=TrainingOU,dc=contoso,dc=com –subtree
以下命令将删除包含在  TrainingOU 中的所有子对象,但保留组织单位对象本身:
dsrm u=TrainingOU,dc=contoso,dc=com –subtree 
    –exclude
本文转自    yuxye   51CTO博客,原文链接:http://blog.51cto.com/fishvsfrog/761492
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值