ADModify.net 简介

 

上一次修改主题: 2010-01-08

作者 Marc Nivens 和 Dan Winter

本文对 ADModify (ADModify.net) 工具进行了简介,它在排除 Microsoft® Exchange Server 问题时非常有用。

ADModify 是使用 Microsoft Visual C#® .NET 2003 编写的。版本 2.0 已得到改进,做相同的修改只需不到上一个版本时间的一半。其功能集允许管理员批量修改任何 Active Directory 分区中的 Active Directory® 目录服务属性,并且几乎具有无限的灵活性。管理员不再被硬编码到工具的属性所限制,因为 ADModify 包含使用其名称和值修改任何属性的能力。ADModify 也不再被限制到文字值。现在,可以基于当前的 Active Directory 属性动态构建值。

所有的日志记录都使用 XML 完成,从而使管理员容易操作和存储数据,甚至利用诸如撤消等功能。根据 Microsoft Windows Server™ 2003 倡仪,确保能够在 GUI 中完成的每一个任务都应该能够通过命令行(该工具中包含一个具有所有相同功能的命令行版本)完成。

ADModify 需要 .NET Framework。它不会在网络驱动器上运行。

若要获取 ADModify 工具,请与 Microsoft 产品支持服务联系。有关如何联系产品支持服务的详细信息,请参阅 Microsoft 帮助和支持网站

您也可以从 GotDotNet 网站获取 ADModify 工具。有关获取该工具的详细信息,请参阅 ADModify.NET:Workspace Home(英文网页)。

note注意:
本主题中提供的第三方网站信息旨在帮助您查找所需的技术信息。URL 如有更改,恕不通知。

现在,可以使用 ADModify 修改 Windows Server 2003 终端服务器属性。在 Windows Server 2003 Active Directory 用户和计算机用户属性页中可获得的所有终端服务器属性均可获得。ADModify 使用 TSUserExLib 库,因此需要 Windows Server 2003 才能修改终端服务器设置。尽管您不必运行 Windows Server 2003 域,但需要为此特定功能从运行 Windows Server 2003 的服务器运行程序。

现在,也可以使用邮箱权利进行批量修改。在处理邮箱权利时,有以下四个选项:

note注意:
因为使用了 CDOEXM,因此必须在运行 ADModify 的计算机上安装 Exchange Server 2003 或 Exchange 2000 Server Exchange 系统管理器。
  • 转储邮箱权利   此选项将用户邮箱权利中所有的访问控制条目 (ACE) 导出到一个 .xml 文件,按继承和非继承的权利分隔。该文件可以用作管理员跟踪邮箱权利的方式,也可以用于导入。使用此选项时不支持“撤消”,因为它是只读操作。
  • 导入邮箱权利   只要完成了邮箱权利的有效导出,即可使用“导入邮箱权利”选项将其导入。所需要的只是一个有效的 Mbxrights.xml 文件。使用此选项时不支持“撤消”。
  • 向邮箱权利批量添加用户   使用此选项,可以同时向多个邮箱添加具有特定权利的用户。例如,您可以授予用户 DOM\user1 到特定用户子集的“完全邮箱访问”。使用此选项时支持“撤消”。
  • 从邮箱权利批量删除用户   与“向邮箱权利批量添加用户”选项相似,除了此选项是从邮箱权利删除指定用户。使用此选项时支持“撤消”。

ADModify 最强大的功能可能就是可以灵活地命名要修改的属性。可以修改包含字符串、布尔值(真/假)或整数值的任何属性。不支持包含安全标识符 (SID) 等数据类型的属性和长整型。

请考虑下面的屏幕截图。

ADModify.NET 自定义选项卡的屏幕截图

在屏幕截图的相应字段中,填写属性名称和值。对于具有多个值的操作,确保选择“多值附加”“多值删除”。需要完成此操作的原因是,如果修改具有多值的属性,并且不选择“多值附加”“多值删除”选项,则属性会被新值覆盖,而不是附加新值。

批量修改用户时,管理员将不再被限制到使用文字值。ADModify 支持使用变量。变量使您能够基于一个或多个当前属性构建属性值。将值用单引号 (') 括起来会将其作为变量对待。如果要使用变量和文字值构建属性,请记住需要使用百分号 (%) 将变量与文字值分隔开来。您也可以从属性中提取前 x 个数字的字符并使用它。

变量示例:

  • 使用描述属性作为值的语法: 'description'
  • 使用两个属性 givenNamesn 的语法(由空格分隔): %'givenName'% %'sn'%
  • 使用多个属性和文字值的语法: h:\homefolders\%'sAMAccountName'%\%'givenName'%\
  • 采用属性第一个字符的语法: %1'givenName'%.%'sn'%@microsoft.com

如果需要在属性值中使用实际的百分号 (%) 或单引号 (') 字符,则在前面使用正斜杠作为转义字符。只要使用了正确的语法,您就可以混合使用变量与文字值,包括 % 和 ' 字符。

示例如下:

  • 若要分配值“This is a percent sign: %”,请使用此代码: This is a percent sign: /%
  • 若要分配值“My username is 'username'”(其中 username 是 sAMAccountName),请使用此代码: My username is /'%'sAMAccountName'%/'

管理员不再需要考虑对 Active Directory 用户进行大批量更新。除了“删除 Exchange 属性”“导入邮箱权利”选项外,所有修改都可以被撤消。所有修改都被写入以当前日期和时间命名的日志文件(以 MMDDYYYYHHMMSS.xml 格式)。所有修改都记录新值及用户的上一个值。只要日志文件未经改动,ADModify 就可以对其进行分析并撤消以前所做的更改。除了在 .xml 文件中记录更改外,也有一个 Undo.log 文件。此文件包含由撤消功能处理的所有用户,它记录跳过的用户,包括为什么跳过用户的原因,并且包括更改摘要。

ADModify.NET 撤消对话框的屏幕截图

命令行语法如下: admodcmd -undo filename.xml

admodcmd.exe 工具是 ADModify 的全功能命令行版本。可以使用 admodcmd -? 获取语法。以下是常见的管理任务示例:

  • 添加 firstinitial.lastname@example.com 的简单邮件传输协议 (SMTP) 辅助地址:
    admodcmd -dn OU=MyOU,DC=domain,DC=com -addsmtp %1'givenName'%.%'sn'%@example.com
  • 命名要修改的属性,并修改描述字段以包含“My legacyExchangeDN is (legacyExchangeDN)”值,其中 (legacyExchangeDN) 是用户的 legacyExchangeDN
    admodcmd -dn OU=MyOU,DC=domain,DC=com -custom description "My legacyExchangeDN is %'legacyExchangeDN'%"
  • 修改显示名称以读取名和姓:
    admodcmd -dn OU=MyOU,DC=domain,DC=com -custom displayName "%'sn'%, %'givenName'%"
  • 将用户的相对可分辨名称从名字姓氏修改到姓氏名字:
    admodcmd -dn OU=MyOU,DC=domain,DC=com -modrdn "%'sn'%, %'givenName'%"

有关 admodcmd 的更多示例用法,请参阅“ADModify 帮助”文件。

以下是 Exchange 管理员可能需要了解的一些常见任务。

“扩展属性”选项卡已在 ADModify 中被删除。现在,extensionAttribute1 ~ 15 的修改在“自定义”选项卡上完成。

修改 extensionAttribute1 ~ 15 步骤
  1. 运行 ADModify,然后单击“修改属性”

  2. “域列表”框中,选择域。

  3. “域控制器列表”框中,选择域控制器。

  4. 转至“用户”容器并将其展开,通过选择用户对象选择要修改的用户,然后单击“添加到列表”

  5. 在右窗格中,选择用户对象并单击“下一步”

  6. “自定义”选项卡上,选择“自定义修改”框。

  7. “属性名”框,输入 extensionAttributex,其中 x 是要修改的扩展属性的编号。

  8. “属性值”框中,键入扩展属性的新值。

  9. 单击“完成”

因为 ADModify 可以浏览和修改配置容器,所以您可以根据 Exchange 组织层次结构运行批量修改。对 Exchange 管理员来说,一个有用的功能是,确保在 Exchange 层次结构中的所有项目上都恰当设置了继承位。

在层次结构中的所有 Exchange 对象上批量修改继承位的步骤
  1. 运行 ADModify,并单击“修改属性”

  2. “域列表”框中,选择配置分区。

  3. “域控制器列表”框中键入域控制器名称并单击“转至”

  4. 单击“自定义 LDAP 查询”。键入筛选条件 (objectClass=*) 并单击“确定”

  5. 选择“遍历子容器”框。

  6. “配置”移动到“服务”,然后选择 “Microsoft Exchange”

  7. 单击“添加到列表”

  8. 在右窗格中选择所有对象并单击“下一步”

  9. 单击“帐户”选项卡,然后选中“允许可继承权限”设置旁边的两个框。

某些环境包含手动输入或未收件人更新服务标记的 proxyAddresses。在这些方案中,删除 Exchange 属性而不首先保存这些地址可能会引起问题。若要保存 proxyAddresses,请执行下列操作。

保存 proxyAddresses 的步骤
  1. 运行 ADModify,并单击“修改属性”

  2. 从下拉列表中选择域和域控制器。

  3. 添加用户,然后单击“下一步”

  4. 单击“自定义”选项卡。在“属性名”中,输入 proxyAddresses,然后在“属性值”下键入 null

之前的步骤将清除 proxyAddresses 属性,但它会首先将所有当前的 proxyAddresses 记录到 ADModify .xml 日志文件。如果您有此文件,则可以删除属性。如果已经还原了属性,则在撤消模式下运行 ADModify 并选择先前列出的日志文件。撤消模式将当前的 proxyAddresses 集替换为日志文件相应项。

有关使用 ADModify 工具的详细信息,请参阅“ADModify 帮助”文件。

 
显示: