Как мне это сделать? Я пытаюсь использовать 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))