百度空间 | 百度首页 
 
查看文章
 
在AD域中,如何批量添加域用户帐号?
2007-04-08 10:22

Q6、在AD域中,如何批量添加域用户帐号?

作为网管,有时我们需要批量地向AD域中添加用户帐户,这些用户帐户既有一些相同的属性,又有一些不同属性。如果逐个添加、设置的话,十分地麻烦。一般来说,如果不超 过10个,我们可利用AD用户帐户复制来实现。如果再多的话,我们就应该考虑使用csvde.exe或ldifde.exe来减轻我们的工作量了。最后简单介绍一下利用脚本(可利用循环功能)批量创建用户帐号

一、AD用户帐户复制

1、在“AD域和计算机”中建一个作为样板的用户,如S1。

2、设置相关需要的选项,如所属的用户组、登录时间、用户下次登录时需更改密码等。

3、在S1上/右键/复制,输入名字和口令。

说明:

1、     只有AD域用户帐户才可以复制,对于本地用户帐户无此功能。

2、     帐户复制可将在样板用户帐户设置的大多数属性带过来。具体如下:

二、比较csvdeldifde

三、以csvde.exe为例说明:域用户帐户的导出/导入

  操作步骤如下:

1、     在“AD域和计算机”中建一个用户,如S1。

2、     设置相关需要的选项,如所属的用户组、登录时间、用户下次登录时需更改密码等。

3、     在DC上,开始/运行:cmd

4、     键入:csvde     –f     demo.csv

说明:

(1)不要试图将这个文件导回,来验证是否好使。因为这个文件中的好多字段在导入时是不允许用的,如:ObjectGUID、objectSID、pwdLastSet 和 samAccountType 等属性。我们导出这个文件目的只是为了查看相应的字段名是什么,其值应该怎么写,出错信息如下:

(2)可通过-d –r参数指定导出范围和对象类型。例如:

          -d “ou=test,dc=mcse,dc=com” 或 -d “cn=users,dc=mcse,dc=com”

                 -r “< Objectclass=user>”

1、     以上面的文件为参考基础,创建自己的my.csv,并利用复制、粘贴、修改得到多条记录。例如:

dn,objectClass,sAMAccountName,userAccountControl,userPrincipalName

"CN=s1,OU=test,DC=mcse,DC=com",user,S1,512,S1@mcse.com

"CN=s2,OU=test,DC=mcse,DC=com",user,S2,512,S2@mcse.com

………………,其它可用字段,我试了一下,见下表(不全):

6、导入到AD,键入 csvde     –i –f     my.csv     –j c:\

说明:-j用于设置日志文件位置,默认为当前路径。此选项可帮助用户在导入不成功时排错。

有一点大家必须明确的是:我们在这里做AD域用户帐户复制、做AD域用户帐户的导出/导入,并不能代替“AD备份和恢复”。我们只是在批量创建用户帐号,帐号的SID都是重新生成的,权利权限都得重新设才行。(当然我们可以把导入的用户,通过memberof字段设到一些用户组中去,使它有权利权限。但这与利用“AD备份和恢复”到原状,完全是两回事)。

四、利用脚本创建批量用户帐户

1、利用脚本创建用户帐号(用户可参考下例)。

Set objDomain = GetObject("LDAP://dc=fabrikam,dc=com")

Set objOU = objDomain.Create("organizationalUnit", "ou=Management")

objOU.SetInfo

说明:在fabrikam.com域创建一个名叫Management的OU。

Set objOU = GetObject("LDAP://OU=Management,dc=fabrikam,dc=com")

Set objUser = objOU.Create("User", "cn= AckermanPila")

objUser.Put "sAMAccountName", "AckermanPila"

objUser.SetInfo

objUser.SetPassword "i5A2sj*!"

objUser.AccountDisabled = FALSE

objUser.SetInfo

说明:在Management OU下创建一个名叫AckermanPila的用户,口令为i5A2sj*!,启用。

Set objOU = GetObject("LDAP://OU=Management,dc=fabrikam,dc=com")

Set objGroup = objOU.Create("Group", "cn=atl-users")

objGroup.Put "sAMAccountName", "atl-users"

objGroup.SetInfo

objGroup.Add objUser.ADSPath

objGroup.SetInfo

说明:在Management OU下创建一个名叫atl-users的用户组,将用户AckermanPila加入到这个组中。

Wscript.echo "Script ended successfully"

说明:显示“脚本成功结束”信息

2、利用脚本中的循环功能实现批量创建用户帐号

Set objRootDSE = GetObject("LDAP://rootDSE")

Set objContainer = GetObject("LDAP://cn=Users," & _

                                                     objRootDSE.Get("defaultNamingContext"))

For i = 1 To 1000

Set objUser = objContainer.Create("User", "cn=UserNo" & i)

objUser.Put "sAMAccountName", "UserNo" & i

objUser.SetInfo

objUser.SetPassword "i5A2sj*!"

objUser.AccountDisabled = FALSE

objUser.SetInfo

Next

WScript.Echo "1000 Users created."

说明:在当前域的Users容器中创建UserNo1到UserNo1000,共1000个用户帐户


类别:Active Directory | 添加到搜藏 | 浏览() | 评论 (0)
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     
 
精彩相册
   
     

©2009 Baidu