方法1:曾经最常用的方法即使用命令:csvde -i -f user.txt或csvde -i -f user.csv(csv为表格格式,可以先用excel编辑好后保存为csv格式即可)
user.txt格式如下:
DN,objectClass,sAMAccountName,userPrincipalName
"cn=吴小辉,ou=test,dc=testking,dc=cc,dc=cmb",user,Y756,Y756@testking.cc.cmb
说明如下:
说明:
1.DN(distinguished name):cn=吴小辉,ou=test,dc=testking,dc=cc,dc=cmb表示对象的存储路径
2.objectClass:user,对象种类。
3.sAMAccountName:Y756就是“用户登陆名称”。
4.userPrincipalName:Y756@testking.cc.cmb也就是UPN。
5.displayName:吴小辉,显示名称
6.userAccountControl:514表示禁用此账户(512表示启动)默认为禁用账户。
以上是所有参数,在实际应用中我们只需要利用四个属性DN,objectClass,sAMAccountName以及userPrincipalName.也是必须使用的属性。
注意:
无法设定用户的密码,在AD中启用密码策略复杂性后必须禁用此属性,如果没有使用userAcccountControl属性的话,默认是禁用账户。否则在导入账号时提示密码不符合复杂性。
导处账户说明:
导出帐户
csvde –f ad.csv 将 Active Directory 对象导出到名为 ad.csv 的文件。–f 开关表示后面为输出文件的名称。
导出来的结果可能存在太多你不希望要的记录和信息。要实现更精确的导出记录,可以使用以下常用参数:
-d 用来指定特定的搜索位置和范围
-r 用来指定特定的搜索对象类型
-l 用来指定导出对象的具体属性
-u 用来避免帐户信息中的中文出现乱码
csvde -f users.csv -u -d "ou=bbs,dc=bsnd,dc=org" -l "DN,objectClass,displayName,company,department,physicalDeliveryOfficeName,telephoneNumber,facsimileTelephoneNumber,ipPhone,mobile,c,st,l,streetAddress,postalCode,title,description,userPrincipalName,sAMAccountName,sn,givenName,initials,postOfficeBox,homePhone,pager,info"
user.csv格式如下:
DN | objectClass | sAMAccountName |
cn=吴小辉,ou=test,dc=testking,dc=cc,dc=cmb | user | Y756 |
cn=张三平,ou=test,dc=testking,dc=cc,dc=cmb | user | Y757 |
cn=李四强,ou=test,dc=testking,dc=cc,dc=cmb | user | Y758 |
以上方法是我们在AD中最常见的批量创建用户方法,该方法的缺点是过程比较繁琐,不能初始用户密码,密码只能为空,需要用户首次登陆更改。以下方法更为方便,let's go
方法2:
vbs脚本如下:
'本脚本需配合ADUsers.txt文本文档使用
'ADUsers.txt的文件格式参照如下(不包含横线和前面的引号部分):
'-----------------------------
'username,UPNUserID,PassWord
'吴小辉,y756,123456789
'-----------------------------
'打开关闭错误调试
'On Error Resume Next
'定义域名和OU,域名及OU的写法格式参照如下:
strDomain = "testking.cc.cmb"
strOU = "OU=test,dc=testking,dc=cc,dc=cmb"
Set adsOU=GetObject("LDAP://" & strOU )
Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile _
("ADUsers.txt", ForReading)
Do Until objTextFile.AtEndOfStream
strNextLine = objTextFile.Readline
arrUserList = Split(strNextLine , ",")
strUser=arrUserList(0)
strID=arrUserList(1)
strPass=arrUserList(2)
Set adsUser=adsOU.Create("user","CN=" & strUser)
adsUser.Put "samAccountName", strID
adsUser.Put "userPrincipalName", strID & "@" & strDomain
adsUser.Put "displayName", strUser
adsUser.SetInfo
adsUser.SetPassword strPass
adsUser.AccountDisabled=False
adsUser.pwdLastSet=0
adsUser.SetInfo
Loop
ADUsers.txt文件如下:
吴小辉,y756,123456789
张三平,y757,123456789
李四强,y758,123456789