- Dim objInfo
- Const ADS_SCOPE_SUBTREE = 2
- Set fso = CreateObject("Scripting.FileSystemObject")
- Set objFile = fso.OpenTextFile("Userinfo.csv")
- Set objConnection = CreateObject("ADODB.Connection")
- Set objCommand = CreateObject("ADODB.Command")
- objConnection.Provider = "ADsDSOObject"
- objConnection.Open "Active Directory Provider"
- Set objCommand.ActiveConnection = objConnection
- objCommand.Properties("Page Size") = 1000
- objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
- Do
- On Error Resume Next
- objInfo = Split(objfile.ReadLine,",")
- strDN = FindUserDN(objInfo(0))
- Set objUser = GetObject("LDAP://" & strDN)
- objUser.Put "description",objInfo(1)
- objUser.SetInfo
- If Err.Number <> 0 Then
- WScript.Echo "Error:" & objInfo(0) & "," & objInfo(1)
- End If
- strDN = ""
- Loop Until objfile.AtEndOfStream = True
- objfile.Close
- WScript.Echo "Done!"
- Function FindUserDN(strUserDisplayName)
- objCommand.CommandText = _
- "SELECT distinguishedName FROM 'LDAP://OU=test,DC=contoso,DC=com' WHERE objectCategory='user' " & _
- "AND displayname = '" & strUserDisplayName & "'"
- Set objRecordSet = objCommand.Execute
- objRecordSet.MoveFirst
- Do Until objRecordSet.EOF
- arrDN = objRecordSet.Fields("distinguishedName").Value
- If IsArray(arrDN) = True Then
- WScript.Echo strUserDisplayName
- FindUserDN = arrDN(0)
- Else
- FindUserDN = arrDN
- End if
- objRecordSet.MoveNext
- Loop
- If Err.Number <> 0 Then
- WScript.Echo Err.Description & ":" & strUserDisplayName
- Err.Clear
- End If
- End Function
需要在脚本同目录下放一个名为Userinfo.csv的文件,格式为"用户显示名,工号"
然后修改相关的LDAP路径使之符合你的AD结构
最后请使用cscript执行本脚本
原文:http://bbs.winos.cn/viewthread.php?tid=36398&extra=&page=1