【发布时间】:2012-11-16 10:42:11
【问题描述】:
尊敬的 LotusScript 大师,
我正在开发一个 Lotus Notes 代理,它应该将我们的 Windows 2003 AD 与我们的 Lotus Domino 目录(V 7.0.3 服务器/客户端)同步。
我正在使用 ADODB.Connection 和 ADODB.Command 进程来连接它并查询 AD 用户。
这是命令文本:
objCommand.CommandText = "<LDAP://ou=DMHU Users,dc=some,dc=kindof,dc=domain>;(&(objectCategory=person)(objectClass=user));name,lastLogon;subTree"
然后我将访问“lastLogon”字段的内容:
objRecordSet.Fields("lastLogon").Value
但这是空的,而“名称”字段具有正确的值(我知道 lastLogon 字段是 64 位日期 - 整数左右)。
使用相同的查询,例如在 VBScript 中可以很好地接收 lastLogon 内容。
在 LotusScript 代码中使用类似 SQL 的查询也会给出相同的空 lastLogon 值。
有人有想法吗?
提前致谢!
【问题讨论】:
-
您试图将 objRecordSet.Fields("lastLogon").Value 分配给什么数据类型?
-
我尝试将其分配为字符串、变体、长整数、整数和 NotesDateTime。在每种情况下,结果都是 Null 或零。
-
嗯.... 一想。这是未经身份验证的请求吗?已经有一段时间了,所以我不记得细节了,但是 Domino LDAP 将只返回一个未验证请求的属性子集,所以它可能因为这个原因拒绝返回 lastLogon。您是否打开了服务器上的 DebugLDAP=7 设置,以便准确查看服务器实际返回的内容?这至少可以让您知道 LotusScript 是否真的从服务器获取数据。
-
理查德,感谢您抽出宝贵的时间。最后我找到了解决方案。问题不是身份验证。
标签: active-directory lotusscript ldap-query