听雨屋檐人 2008-1-4 10:39
如何利用脚本等工具自动同步域用户(ldap认证)到cq中!
如何利用脚本等工具自动同步域用户(ldap认证)到cq中?
二黑 2008-1-4 18:42
确实是个好的想法,支持,提个思路
用脚本执行net user /domain得到域内所有用户
剩下的用adminsession一个一个加就成了,过滤掉已经有的
yunshan 2008-1-5 14:54
随便写了一个,给你参考一下,没有经过调试:Function SyncDomainUsers(strDomain)
Dim objDom
Dim adminSession
Dim sessionObj
Dim queryObj
Dim resultObj
Dim flag
flag = 0
On Error Resume Next
Err.Clear
' Get Session object
Set sessionObj = GetSession
' Create and login adminSession
set adminSession = CreateObject("ClearQuest.AdminSession")
adminSession.Logon "admin", "admin", ""
' Query all users
Set queryObj = sessionObj.BuildQuery("users")
queryObj.BuildField ("login_name")
' Query all domain users
Set objDom = GetObject("WinNT://" & strDomain )
objDom.Filter = Array("Users")
For Each objUser In objDom
Set resultObj = sessionObj.BuildResultSet(queryObj)
resultObj.Execute
Do While resultObj.MoveNext = AD_SUCCESS
If StrComp(resultObj.GetColumnValue(1), objUser.Name) = 0 Then
flag = 1
Exit Do
End If
Loop
If flag = 0 Then
set newUserObj = adminSession.CreateUser (objUser.Name)
newUserObj.Active = 1
newUserObj.AppBuilder = 0
' Set user password same as username
newUserObj.Password = objUser.Name
End If
Next
If Err.Number = 0 Then
SyncDomainUsers = ""
Else
SyncDomainUsers = Err.Description
End If
End Function
调用起来很简单,如下:
Dim rsCall
rsCall = SyncDomainUsers
If rsCall = ""
MsgBox "Sycronize CQ Users with Domain users Successfully!"
Else
MsgBox rsCall
End If
[[i] 本帖最后由 yunshan 于 2008-1-8 16:13 编辑 [/i]]