2023年11月24日发(作者:)

.4.6 利用脚本批量添加域用户账户

以上两种方法是比较常用的批量用户账户添加方法,但是不够灵活(不可以设

置密码),而且在添加用户数量多时,输入的工作量也比较大。本节所介绍的

WSH脚本方法相对来说,工作量比较小,但难度却要高许多,需要懂得一些基本

的脚本语言。 仅作选学参考。

【注意】以下脚本也需要在文本模式下,以英文输入方式输入,特别是其中的逗

号和引号。其实这是代码输入的一般性常识。

WSH的全称是Windows Script Host,是一种支持ActiveXCOM)的独立脚本语

言。WSH脚本程序本来是为了替代DOS时代的批处理文件而产生的,后来由于WSH

的应用很广泛,已经不只是局限于批处理的替代品了。Windows98开始,操作

系统就已经自带了WSH,因此在Windows98或以上的操作系统中,可以不安装任

何软件就能直接使用WSH

WSH可以使用VBscriptJscript即使用的脚本语言与网页脚本是一样的。WSH

文件的扩展名为vbsjs,分别用VBscriptJscript作为编程脚本语言。还

有一种脚本文件的扩展名是wsf,它是一种包含XML的文件,wsf文件中可以同

时包含VBscriptJscript两种语言。wsf文件中,可以使用多种脚本,需要

一些XML标签来声明的,最基本的就是用<script>标签说明脚本的类型,另外

最外层要用<job>标签声明任务。此处所介绍的不是这种支持XML的脚本。

1. 利用WSH脚本中的循环功能实现批量创建用户帐号

用脚本批量添加用户账户的一个最大的好处就是代码输入工作量小,几行就完成

了,而且还可以配置用户密码。但难度较大,而且用户名只能是有规律的,不可

能针对每个用户具体指定用户名。现在假设要在域的Sales组织单

位中创建10个用户,用户名为User1User2~User10下面是这个示例的代码,

用记事本程序以vbsjs扩展名格式保存,然后直接双击运行即可。

Set objDomain = GetObject"LDAP://dc=grfw,dc=local" # 调用(也称

绑定)名为对象

Set objOU = "organizationalUnit", "ou=Sales" #

建一个名为Sales的组织单位。如果相应的组织单位已创建,则此语句不要,

要采用“Set objContainer = GetObject

"LDAP://OU=Sales,dc=grfw,dc=local")”语句,否则会显示“对象已存在”

错误信息。

Set objOU = GetObject"LDAP://OU=Sales,dc=grfw,dc=local" # 调用域名

,组织单位为Sales对象

o # 保存组织单位信息

For i = 1 To 10 # 设置循环变量和级数

Set objUser = "User", "cn=UserNo" & i # Users

容器下创建UserNo1UserNo10的用户账户

"sAMAccountName", "UserNo" & i # 把所得的“UserNo”变量值

赋予给相应用户账户的sAMAccountName属性

o # 保存用户信息

sword "Winda0101" # 设置所有用户的初始密码均为

Winda0101

tDisabled = FALSE # 启用用户

o # 保存用户信息

Next # 下一个循环

"10 Users created." # 脚本编写结束后的显示信息,提示已创

建了1000个用户账户

以上语句在记事本中的格式如图2-31所示。

2-31 WSH脚本格式示例

添加用户后,也会在“Active Directory用户和计算机”管理单元相应的组织

单位下添加这些用户,如图2-32所示。注意他们已有了初始密码。

批量添加后还要对各用户进行重命名,重命名的方法很简单,只需在相应账户上

单击右键,在弹出菜单中选择“重命名”选项即可进行重命名。

2-32 WSH批量添加的10个用户