0

それ、どうやったら出来るの?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))
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

2番目のリンクの人は、階層の移動と名前の変更を行いました。彼らは明らかにあなたが最初にしたのと同じエラーを受け取りました。

MoveUserInHierarchyRequest MoveUserInHierarchyComplete RenameNotesUser

お役に立てれば。

于 2012-12-19T16:52:07.710 に答える