0

我怎么做?我正在尝试 NotesAdministrationProcess 但帮助文件中缺少一些示例。搜索网络很困难,因为这些方法很少记录在案。目前我正在使用 RenameNotesUser 重命名用户,但只有当我在服务器上运行“tell adminp process new”时才会发生更改。发送重命名请求后如何自动重命名?

我也没有改变用户的 OU/Department 的运气。我应该使用哪种方法?当前使用 RecertifyUser 但它会弹出一个关于验证者 ID 不是某物的祖先的错误。例如,我想将用户从技术部门移动到销售部门(John/Technical/ACME 到 John/Sales/ACME)。在 Domino Administrator 中使用销售 ID 手动重新认证 John 可以正常工作。我还希望用户的 OU 更改立即生效,而无需告诉 Domino 控制台对其进行处理。

上述 2 个进程不必同时运行,因为用户不能同时更改名称和 OU。下面是我使用的测试代码/代理(如果我想运行重新认证代码,我会注释重命名代码,反之亦然):

Dim s As New NotesSession
Dim db As NotesDatabase
Dim vw As NotesView, doc As NotesDocument
Dim adminp As NotesAdministrationProcess
Dim svr$, path$, cert$, pwd$, staffid$, newlastname$

svr="" 'server1/ACME
path="" 'names.nsf
cert="" 'for rename(C:\tech.id), for recertify(C:\sales.id)
pwd="" 'for rename(tech), for recertify(sales)
staffid="" 'A0001(John's ID)
newlastname="" 'James

Set db=s.Getdatabase(svr, path, False)
Set adminp=s.Createadministrationprocess(svr)
adminp.Certifierfile=cert
adminp.Certifierpassword=pwd

Set vw=db.Getview("People\by Staff Number")
Set doc=vw.Getdocumentbykey(staffid, True)

'for rename. our company only use the last name as name
Call adminp.Renamenotesuser(doc.FullName(0), newlastname)

'for change ou
Call adminp.Recertifyuser(doc.FullName(0))
4

1 回答 1

1

我找到了 2 个可能有帮助的链接。

http://xprentice.gbs.com/A55BAC/keithstric.nsf/default.xsp?documentId=23303E4527F3A89B8525793B0061CB37

http://www-10.lotus.com/ldd/nd85forum.nsf/dba3ca7e515d55ff85256a0700727b35/07fc34e0ad09cea0852578b0003dad49?OpenDocument

第二个链接中的人做了层次结构的移动和重命名。他们显然遇到了与您一开始相同的错误。

MoveUserInHierarchyRequest MoveUserInHierarchyComplete RenameNotesUser

希望这可以帮助。

于 2012-12-19T16:52:07.710 回答