それ、どうやったら出来るの?NotesAdministrationProcessを試していますが、ヘルプファイルに例がないものがあります。これらの方法が文書化されることはめったにないため、Webの検索は困難です。現在、RenameNotesUserを使用してユーザーの名前を変更していますが、変更はサーバーで「telladminpprocessnew」を実行した場合にのみ発生します。名前変更リクエストを送信した後、名前変更を自動化するにはどうすればよいですか?
また、ユーザーのOU/部門を変更することもできません。どの方法を使用すればよいですか?現在RecertifyUserを使用していますが、認証者IDが何かの祖先ではないというエラーが表示されます。たとえば、ユーザーを技術部門から営業部門に移動したいとします(John / Technical/ACMEからJohn/Sales / ACME)。セールスIDを使用してDominoAdministratorでJohnを手動で再認証すると、正常に機能します。また、ユーザーのOUの変更は、Dominoコンソールに処理するように指示せずにすぐに有効にする必要があります。
ユーザーは名前とOUを同時に変更できないため、上記の2つのプロセスを同時に実行する必要はありません。以下は、私が使用するテストコード/エージェントです(再認証コードを実行する場合、またはその逆の場合は、名前変更コードにコメントします)。
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))