CSVDE&LDIFDE

CSVDE

逗号分隔值数据交换工具(即 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

Active Directory 还提供了另外一个用于执行批量用户操作的内置工具,称为 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 的文本文件,如图 2 所示。


2 ModifyUsers LDF 文件 (单击该图像获得较小视图)


2 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 文件,您可以在将这些更改应用于生产环境之前使用这些文件检查和批准更改。

 

 

除了用于执行批量导入和导出操作的工具外,Windows Server 2003 还包括一个内置工具集,您可以使用它来创建、删除和修改各种 Active Directory 对象,还可以对符合特定条件的对象执行查询。(请注意 Windows 2000 Active Directory 并不支持这些工具,如 dsadddsrmdsget 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



dsmove

要移动或重命名 Active Directory 中的对象,请使用 dsmove 工具,但请注意您只应使用该工具在单一域中移动对象。要在域和林之间迁移对象,请使用 Active Directory 迁移工具 (ADMT),可从 Microsoft 网站免费下载。Dsmove 依赖于两个开关,它们可以单独使用,也可以结合在一起使用。以下命令将为 Steve Conn <SPAN lang=ZH-CN style="FONT-SIZE: 9pt; FONT-FAMILY: 新細明體; mso-font-kerning: 0pt; mso-fareast-language: ZH-CN; mso-ascii-font-family: Ar

 

原文来自:http://www.winos.cn/action-blogdetail-uid-317-id-637.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值