AD域内批量修改用户别名方法


                                          作者:杨坚


域内建了两个帐号在OU=IT中。

 

 

一、更改用户的UPN名称
使用dsquery 和dsmod 这两上工具
例:
dsquery user -upn  jack@mcitp.com | dsmod user -upn 10002@mcitp.com

建立批处理文件:

 

 

 

 

 

 

 

 

二、更改用户samid(用户登录名windows 2000以前的版本):
 

用两个第三方的程序adfind和admod
 

 

 

例:
adfind -default -f "&(objectcategory=person)(samaccountname=jack)" -dsq | admod -unsafe "samaccountname::10002"

 

建立批处理文件(备注:批处理文件和adfind,admod两个工具放在同一目录中运行):
 

 

 

 

 

 

 

 

三、帐号别名修改后,登录测试:
使用simon帐号别名10001 登录。
使用mcipt\10001登录方式 ,测试成功。
 

 

 

 

 

 

使用10001@mcitp.com登录方式 ,测试成功。

 

 

 

 

 附录:

Adfind 和 Admod

  Adfind 和 admod 类似于 dsquery 和 dsmod;adfind 是 Active Directory 的命令行查询工具,admod 能够创建、删除或修改一个或多个 Active Directory 对象。

  与具有多个子菜单并且开关依据对象类型而异的 ds* 工具不同,adfind 和 admod 具有一致的语法,与要尝试执行的查询或修改类型无关。adfind 的基本语法为:

  adfind –b <Search Base> -s <Search Scope> -f <Search Filter>    attributesDesired

  所以对域中所有计算机对象的 DN 和说明的查询应为:

  adfind –b dc=contoso,dc=com –s subtree –f (objectclass=computer) dn    description

  对所有用户对象的查询如下所示:

  adfind –b dc=contoso,dc=com –s subtree –f "(&(objectcategory=person)    (objectclass=user))" dn description

  注意,除了 LDAP 查询的内容外,语法没有任何更改。

  使用 adfind 时,您将发现许多快捷操作符,可以减少许多键入内容。例如,-default 开关可以取代上一示例中的 -b dc=contoso,dc=com 并搜索整个域;-gc 搜索垃圾收集 (GC) 并返回 Active Directory 林中所有的用户。还可以使用 -rb 开关设置相对搜索库;如果要在 phl.east.us.contoso.com 域中搜索 Training OU,您可以通过仅仅指定 –default –rb ou=Training,而非 –b ou=Training, dc=phl,dc=east,dc=us,dc=contoso,dc=com,从而减少许多工作量。

  另外,adfind 还可以执行在命令行中不能轻松管理的许多高级搜索功能,

  使用 –asq 开关“显示 HelpDesk 成员的组成员身份”的示例如下所示:

  adfind –default –rb cn=HelpDesk,ou=IT –asq member memberOf

  顾名思义,admod 用于修改 Active Directory 中的对象。与 adfind 一样,不需要记住有特殊语法的特定子菜单;admod 在任何时候都使用相同的语法,与要处理的对象类型无关。还可以使用 admod 添加、移动、重命名、删除甚至恢复对象,只需通过添加相应的开关(如 -add、-rm、-move、-undel)即可实现。就像 dsquery 和 dsmod 一样,您也可以使用 | 字符将 adfind 查询的结果通过管道传送到 admod.

  请注意,使用 admod 执行恢复操作只能执行逻辑删除恢复操作,在此操作中大部分对象属性已被删除。要完全还原某个对象及其所有属性,您仍需要执行该对象的授权还原。