批量添加域用户安全
1、 AD用户账户复制架构
1、在“AD域和计算机”中建一个做为样板的用户,如S1。 编辑器
2、设置相关须要的选项,如所属的用户组、登陆时间、用户下次登陆时需更改密码等。ide
3、在S1上/右键/复制,输入名字和口令。工具
说明:ui
1、 只有AD域用户账户才能够复制,对于本地用户账户无此功能。加密
2、 账户复制可将在样板用户账户设置的大多数属性带过来。具体以下: spa
2、比较csvde与ldifde.net
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 文件,您能够在将这些更改应用于生产环境以前使用这些文件检查和批准更改。
3、以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
………………
其它可用字段,我试了一下,见下表(不全):
说明:有些标签日常极少用到,就没有试。若是须要能够本身导出来看一下,像一些复杂的字段,如: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