Переименовать и изменить OU / отдел пользователя в Domino Directory с помощью LotusScript?

Как мне это сделать? Я пытаюсь использовать NotesAdministrationProcess, но в файле справки не хватает примеров. Поиск в Интернете затруднен, поскольку этот метод редко документируется. В настоящее время я использую RenameNotesUser для переименования пользователя, но изменения происходят только тогда, когда я запускаю на сервере команду «сообщить adminp process new». Как мне автоматизировать переименование после отправки запроса на переименование?

Также мне не повезло с изменением OU / отдела пользователя. Какой метод мне следует использовать? В настоящее время используется RecertifyUser, но появляется ошибка о том, что идентификатор сертификатора не является предком чего-то. Например, я хочу переместить пользователя из технического отдела в отдел продаж (от John / Technical / ACME до John / Sales / ACME). Повторная сертификация Джона вручную в Domino Administrator с использованием идентификатора продажи работает нормально. Я также хочу, чтобы изменение организационной единицы пользователя вступило в силу немедленно, не сообщая консоли 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))

person user1409217    schedule 07.11.2012    source источник


Ответы (1)


Я нашел 2 ссылки, которые могут помочь.

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

и

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

Человек во 2-й ссылке переместился по иерархии и переименовал. Очевидно, они получили ту же ошибку, что и вы сначала.

MoveUserInHierarchyRequest MoveUserInHierarchyComplete RenameNotesUser

Надеюсь это поможет.

person Vic    schedule 19.12.2012