我正在使用ADSI Scriptomatic,我注意到这些示例需要用户名strName
,但我想做一整批操作,从AD中提取数据并将数据放回去。我只是想知道发生了什么objRootDSE对象当我拉或把数据在它?
Public Sub createADCommand(Optional strContainer As String)
Set objRootDSE = GetObject("LDAP://rootDSE")
If strContainer = "" Then
Set objItem = GetObject("LDAP://" & _
objRootDSE.Get("defaultNamingContext"))
Else
Set objItem = GetObject("LDAP://cn=" & strName & "," & strContainer & "," & _
objRootDSE.Get("defaultNamingContext"))
End If
End Sub
我问的原因是因为我想重用这个对象,如果它在某种程度上是内存密集型的。我希望代码尽可能高效。但我不确定LDAP是否是一个繁重的协议?我知道"L"代表"轻量级"但是如果我要重新打开一个对象,我觉得关闭它没有意义。
在此上下文中,LDAP无关紧要。相反,变量"objItem"存储的是它收集的任何内容(在本例中是来自LDAP的数据)。并且您不必担心将其放回原处,除非您想要更改、删除或添加LDAP数据。