因此,如果某人有 200 个名字的列表,并且他们想要快速为每个名字添加 ActiveDirectory 用户和 Exchange 邮箱,是否有任何工具/技术可以帮助实现这一点?
细节:
- Exchange 2003
- Excel/CSV 文件中的 200 个姓名列表
- 添加 AD 用户
- 然后添加 Exchange 邮箱
- 每个用户都需要外部联系人,包括电子邮件地址
- 为每个邮箱启用双重递送
答案1
用于创建用户帐户的 VBScript 和 ADSI。使用类似下面的命令开始:
Set objRootDSE = GetObject("LDAP://rootDSE")
Set objContainer = GetObject("LDAP://cn=Users," & objRootDSE.Get("defaultNamingContext"))
For i = 1 To 1000
Set objLeaf = objContainer.Create("User", "cn=UserNo" & i)
objLeaf.Put "sAMAccountName", "UserNo" & i
objLeaf.SetInfo
Next
WScript.Echo "1000 Users created."
从这里。
这Microsoft Technet 脚本中心还有很多示例脚本,几乎涵盖了你想做的任何事情,是一个很好的资源。
对于邮箱,我不会费心编写脚本;只需在同一个 OU 中创建所有用户,然后块选择它们(在 ADU&C 中),右键单击,然后执行“Exchange 任务”操作 - 更快且更不容易出错。
答案2
如果您不想使用 VBScript,也可以使用 dsadd。我有一个一行批处理文件,用于每年导入我的所有新用户:
(可能有更好的方式来展示这一点,但我还没有喝咖啡。)
for /F "tokens=1,2,3,4 delims=," %%i in (freshmen09.csv) do dsadd user "cn=%%j %%i,ou=2013,ou=students,dc=[domain],dc=org" -samid %%k -pwd "%%l" -upn %%k@[domain].org -fn "%%j" -ln "%%i" -display "%%j %%i" -memberof "cn=GL 2013,ou=2013,ou=students,dc=[domain],dc=org" -disabled no -mustchpwd yes -hmdrv U: -hmdir "\\[network home directory]\2013\%%k"
这从 CSV 文件中取出 4 列:姓氏、名字、用户名、密码
- 它为文件中的每一行创建一个用户,
- 将它们放入所需的 OU,
- 设置密码,
- 将他们添加为群组成员,
- 强制用户首次登录时必须更改密码,
- 将主目录设置为网络共享上的适当位置。
我曾尝试让它自动创建电子邮件地址,但结果并不一致。通常我必须按照 mh 的建议操作,只需在 ADU&C 中选择全部,然后从那里设置 Exchange 邮箱。非常简单,比使用 DSADD 找出那部分要容易得多。
DSADD 还有许多其他参数。基本上,您可以让它设置您想要的任何用户属性。简单、轻松、快速。
一个失败:用户名冲突需要手动处理。我们偶尔会遇到像 James Smith 和 Jonathon Smith 这样的名字的学生。如果您有一个可以提前防止冲突的系统,那就太好了。如果没有,我建议将 bat 文件的输出重定向到文本文件,然后在结果中搜索“失败”。
freshmen09.bat > freshmen09_output.txt
(可能有更好的方法来完成这部分......)