'更新组织结构
Set bpmobjConnection = CreateObject("ADODB.Connection")
'使用之前创建一个ODBC DSN 并制定用户名密码
bpmobjConnection.Open "DSN=oracle;","bpm","bpm"
' Specify base OU.
strOU = "OU=1_UserAccount,dc=cu,dc=local"
' Bind to base OU.
Set objOU = GetObject("LDAP://" & strOU)
' Enumerate groups in OU.
Call EnumOU(objOU, "")
'递归函数遍历
Function EnumOU(ByVal objADContainer, ByVal strOffset,ByVal upou)
' Recursive subroutine to enumerate groups in the OU
' and all child OU's.
Dim objGroup, objChild
' Output name of OU.
'Wscript.Echo strOffset & "OU: " & objADContainer.distinguishedName
' Enumerate child OU's.
objADContainer.Filter = Array("organizationalUnit")
For Each objChild In objADContainer
'update oracle
'setup value
'FUEGO_MODIFIER="uaes"
'FUEGO_CRTIME="sysdate"
pou=upou
pname=objChild.ou
objCn.CursorLocation = 3 '参数都不能写成常量的形势,必须要写成整型
Set adoComm = CreateObject("ADODB.Command")
With adoComm
.ActiveConnection = objCn
.CommandType = 4
.CommandText = "updatebpmou"
Set para_trade = CreateObject("ADODB.Parameter")
para_trade.Name = "pou"
para_trade.Type = 200'这个参数是用于varchar2入参
para_trade.Size = 1000
para_trade.Direction = 1
para_trade.Value = pou
.Parameters.Append para_trade
Set para_trade2 = CreateObject("ADODB.Parameter")
para_trade2.Name = "pname"
para_trade2.Type = 200'这个参数是用于varchar2入参
para_trade2.Size = 1000
para_trade2.Direction = 1
para_trade2.Value = pname
.Parameters.Append para_trade2
rs=CreateObject("ADODB.Recordset")'存储过程返回的游标
Set rs = .Execute()
End With
'end update oracle
Call EnumOU(objChild, strOffset & " ",upou)
Next
End Function
bpmobjConnection.Close