[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[转贴] VBS脚本根据Firstname和Lastname更新AD中用户帐号Email

因为工作需要,要给AD中每个用户添加一个email地址。我们公司用的是Lotus Notes,和用Exchange的公司不同,AD中email地址字段是空的。

不过,好在我们的email是有规律的,都是Firstname.Lastname@mycompany.com的这种形式。所以就简单写了一个 script,读取用户帐号的Firstname和Lastname值,然后合并成为email地址,再写入AD中的这个用户帐号中去。

【功能】
(1)读取FirstName和LastName,合并成Firstname.Lastname@mycompany.com,再回写入email这个字段中
(2)如遇到FirstName或者Lastname是空,则跳过该帐号,并在屏幕上回显出这个帐号。
(3)全部修改完毕后,显示一共被更新过的帐号总数。
(4)该script对某一个指定OU下的所有帐号依次进行自动操作。

【用法】
(1) 将下面的script复制到文本文件,取名为UpdateEmail.vbs
(2) 修改你们公司的域名,和你们公司存放用户帐号的OU,并保存
(3) 然后打开一个命令行窗口,键入以下命令
cscript UpdateEmail.vbs

【免责声明】
这个script是本人所写,请先在测试环境下进行调试,一切正常后再使用。本人对于使用过程中造成的数据丢失和损坏不承担任何责任。
  1. '======================Start========================
  2. ' Modify User Email by FirstName.LastName@mycompany.com
  3. Option Explicit
  4. Dim strOU, strDomain, strADsOU
  5. Dim objOU, objUser, objRootDSE
  6. Dim i
  7. Dim charFirstName, charLastName, charEmail
  8. On Error Resume Next
  9. '===========================================
  10. 'Type contrainer here. Format is "ou=xxx,ou=yyy"
  11. '===========================================
  12. strOU = "OU=People,OU=AllUsers"
  13. Set objRootDSE = GetObject("LDAP://rootDSE")
  14. strDomain = objRootDSE.Get("defaultNamingContext")
  15. strADsOU = "LDAP://" & strOU & "," & strDomain
  16. ' Connect to ou
  17.     Set objOU = GetObject(strADsOU)
  18.     WScript.Echo "The emails will be added into " & objOU.Get("name") & " OU"
  19.     ObjOU.Filter= Array("user")
  20.     i=0
  21.     WScript.Echo ""
  22.     WScript.Echo "The following AD accounts don't have FirstName or LastName:"
  23.     For Each objUser in objOU
  24.         charFirstName = ""
  25.         charLastName = ""
  26.          charFirstName = objUser.Get("givenName")
  27.         charLastName = objUser.Get("sn")
  28.     If (charFirstName = Null) Or (charFirstName = "") Or (charLastName = Null) _
  29.     Or (charLastName = "") Then
  30.         WScript.Echo objUser.cn
  31.     Else
  32.         charEmail = charFirstName+"."+charLastName+"@mycompany.com"
  33.         objUser.Put "mail", charEmail
  34.         objUser.SetInfo
  35.         i=i+1
  36.     End If
  37.     Next
  38. 'display the count
  39.     WScript.Echo ""
  40.     WScript.Echo "Total record changed: " & i
  41. '===================end=========================
复制代码
http://delxu.blog.51cto.com/975660/276039

返回列表