扫一扫
关注微信公众号

用于管理活动目录的 11 个基本工具3
2007-10-09   网络

dsmove

  要移动或重命名 Active Directory 中的对象,请使用 dsmove 工具,但请注意您只应使用该工具在单一域中移动对象。要在域和林之间迁移对象,请使用 Active Directory 迁移工具 (ADMT),可从 Microsoft 网站免费下载。Dsmove 依赖于两个开关,它们可以单独使用,也可以结合在一起使用。以下命令将为 Steve Conn 的帐户指定新姓氏:

  dsmove "cn=Conn, Steve,ou=IT,dc=contoso,dc=com" –newname "Steve Conn"

  以下命令将 Steve 的帐户从 IT OU 移动到 Training OU:

  dsmove "cn=Conn, Steve,ou=IT,dc=contoso,dc=com" –newparent ou=Training,dc=contoso,dc=com

  您可以通过同时指定这两个开关,将重命名和移动合并为一个操作,如下所示:

  dsmove "cn=Conn, Steve,ou=IT,dc=contoso,dc=com" –newname "Steve Conn" –newparent ou=Training,dc=contoso,dc=com

  Dsget 和 Dsquery

  ds* 命令行工具集还包括两个用于查询 Active Directory 获取信息而非用于创建或修改对象的工具。

  Dsget 将对象的 DN 作为输入并为您提供您指定的一个或多个属性的值。Dsget 使用与 dsadd 和 dsmod 相同的子菜单 — user、computer、contact、group、ou 和 quota.

  要获得用户帐户的 SAM 帐户名和安全标识符 (SID),请键入以下命令(请注意以下所有内容位于一行):

  dsget user cn=afuller,ou=IT,dc=contoso,dc=com –samAccountName –sid

  您将会得到如图 2所示的输出。

图 2 运行 dsget

  Dsquery 将返回一个符合您指定条件的 Active Directory 对象的列表。无论您使用的是哪个子菜单,都可以指定以下参数:

  dsquery <ObjectType> <StartNode> -s <Search Scope> -o <OutputFormat>

  对于 ObjectType,dsquery 可以使用以下子菜单,每个子菜单都具有自己的语法:computer、contact、subnet、group、ou、site、server(请注意,服务器子菜单检索有关域控制器的信息,而不是环境中的任一成员服务器)、user、quota 和 partition.如果其中一个查询类型不符合需要,您可以使用 * 子菜单,这样您可以输入任意格式的 LDAP 查询。

  StartNode 指定搜索在 Active Directory 树中的开始位置。您可以使用特定的 DN,如 ou=IT、dc=contoso、dc=com 或下列其中一个快捷说明符:domainroot,从特定域的根目录开始;forestroot,从使用全局编录服务器执行搜索的林根域的根目录开始。

  最后,“搜索范围”选项指定 dsquery 搜索 Active Directory 树的方式。Subtree(默认方式)查询指定的 StartNode 及其所有子对象;onelevel 仅查询 StartNode 的直接子项;base 仅查询 StartNode 对象。

  为了更好地理解搜索范围,假定有一个 OU,其中包含用户对象和一个子 OU,该子 OU 自身又包含其他对象。使用 subtree 范围将查询该 OU、包含在该 OU 内的所有用户对象和子 OU 及其内容。onelevel 范围仅查询包含在 OU 中的用户而不查询子 OU 及其内容。base 查询仅搜索 OU 本身而不查询其中包含的任何对象。

  最后,您可以使用 Output Format 控制如何设置 dsquery 的结果的格式。默认情况下,dsquery 将返回与查询相匹配的所有对象的可分辨名称,如下所示:

  "cn=afuller,ou=Training,dc=contoso,dc=com""cn=rking,ou=ITTraining,ou=Training,dc=contoso,dc=com"

  要查询 IT OU 和任意子 OU 中包含的所有用户对象,请使用以下命令:

  dsquery user ou=IT,dc=contoso,dc=com

  您可以通过添加其他开关进一步细化此查询,如 -disabled(仅返回已禁用的用户帐户)、-inactive x(仅返回在过去 x 周或更久未登录的用户)或 -stalepwd x(仅返回在 x 天内或更久未更改其密码的用户)。

  依据目录中对象的数目,在运行查询时您可能需要指定 -limit x 开关。默认情况下,dsquery 将会返回多达 100 个与查询细节相匹配的对象。您可以指定更大的数目(如 -limit 500),或使用 -limit 0 指示 dsquery 返回所有匹配对象。

  也可以使用其他子菜单执行对其他对象类型的有用查询。考虑以下查询,此查询将返回在 Active Directory 站点和服务中定义的位于 10.1.x.x 地址空间中的每个子网:

  dsquery subnet –name 10.1.*

  或使用以下命令返回位于 Corp 站点中的每个子网:

  dsquery subnet –site Corp

  使用另一个子菜单,您可以很快确定林中配置为全局编录服务器的域控制器的数量:

  dsquery server –forest –isgc

  您还可以使用此语法帮助确定域中哪个域控制器承载主域控制器 (PDC) 模拟器灵活单主机操作 (FSMO) 角色:

  dsquery server –hasfsmo pdc

  与其他包含子菜单的 ds* 命令一样,您可以转到命令提示符并键入 dsquery user /?、dsquery computer /?、dsquery subnet /? 等查看特定 dsquery 子菜单中可用的所有开关。

  另一个灵活的技巧是使用管道字符(在美式键盘上按下 shift 的同时按反斜杠即可)将 dsquery 的输出通过管道传送到其他工具(如 dsmod)中。例如,假设您的公司已将 Training 部门重命名为 Internal Development,现在您必须将每位相关用户的说明字段从旧部门名称更改为新名称。在单一命令行上,您可以查询具有 Training 的说明字段的用户对象,然后批量修改该说明字段,如下所示:

  dsquery user –description "Training" | dsmod -description "Internal Development"

热词搜索:

上一篇:用于管理活动目录的 11 个基本工具2
下一篇:11 个用于管理活动目录的工具4

分享到: 收藏