现在的位置: 首页 > 综合 > 正文

批量修改AD的属性(转)

2012年09月20日 ⁄ 综合 ⁄ 共 1624字 ⁄ 字号 评论关闭
  1. Dim objInfo
  2. Const ADS_SCOPE_SUBTREE = 2
  3. Set fso = CreateObject("Scripting.FileSystemObject")
  4. Set objFile = fso.OpenTextFile("Userinfo.csv")
  5. Set objConnection = CreateObject("ADODB.Connection")
  6. Set objCommand =   CreateObject("ADODB.Command")
  7. objConnection.Provider = "ADsDSOObject"
  8. objConnection.Open "Active Directory Provider"
  9. Set objCommand.ActiveConnection = objConnection
  10. objCommand.Properties("Page Size") = 1000
  11. objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
  12. Do
  13. On Error Resume Next
  14.         objInfo = Split(objfile.ReadLine,",")
  15.         strDN = FindUserDN(objInfo(0))
  16.         Set objUser = GetObject("LDAP://" & strDN)
  17.         objUser.Put "description",objInfo(1)
  18.         objUser.SetInfo       
  19.         If Err.Number <> 0 Then
  20.                 WScript.Echo "Error:" & objInfo(0) & "," & objInfo(1)
  21.         End If
  22.         strDN = ""
  23. Loop Until objfile.AtEndOfStream = True
  24. objfile.Close
  25. WScript.Echo "Done!"
  26. Function FindUserDN(strUserDisplayName)
  27.         objCommand.CommandText = _
  28.             "SELECT distinguishedName FROM 'LDAP://OU=test,DC=contoso,DC=com' WHERE objectCategory='user' " & _
  29.                 "AND displayname = '" & strUserDisplayName & "'"
  30.         Set objRecordSet = objCommand.Execute
  31.         objRecordSet.MoveFirst
  32.         Do Until objRecordSet.EOF
  33.             arrDN = objRecordSet.Fields("distinguishedName").Value
  34.             If IsArray(arrDN) = True Then
  35.                     WScript.Echo strUserDisplayName
  36.                     FindUserDN = arrDN(0)
  37.             Else
  38.                     FindUserDN = arrDN
  39.             End if
  40.             objRecordSet.MoveNext
  41.         Loop
  42.         If Err.Number <> 0 Then
  43.                 WScript.Echo Err.Description & ":" & strUserDisplayName
  44.                 Err.Clear
  45.         End If       
  46. End Function

 

需要在脚本同目录下放一个名为Userinfo.csv的文件,格式为"用户显示名,工号"
然后修改相关的LDAP路径使之符合你的AD结构
最后请使用cscript执行本脚本

原文:http://bbs.winos.cn/viewthread.php?tid=36398&extra=&page=1

抱歉!评论已关闭.