问题描述:
公司改了名,你需要把一批用户一次性移动/转换到新的域中。

注意:这个过程的前提是假设 Domino 管理员新建了一个和新的公司名称关联的组织单元证书(在已存在的 Domino® 目录: names.nsf 文件中),并移动用户至这个新的证书下。在两个公司合并的案例中,如果两个公司都配置了 Domino, 那么这个过程将会在管理员合并两个域为一个 Domino 目录后显得非常有用。

解答:
警示信息:你可能需要做全面的计划并雇请咨询服务帮助完成这个转换。

如果管理进程(AdminP )已经运行,请按以下步骤操作以批量把用户一次性移动/转换到新的域中。

在开始之前为了确保 AdminP 能够正确运行的重要提示:

1. 新的 cert.id 文件的组织名称必须区别于原始 cert.id 文件的组织名称。

2. 如果你还没有在所有服务器上运行/加载 AdminP,请先运行/加载 AdminP.

3. 如果还没做,分派一个管理服务器给 Domino 目录(在文件,数据库,访问控制,高级下)。

4. 如果你有好几个 Notes® 服务器,请确认每个服务器都有从 Hub / Domain 控制服务器复制的 admin4.nsf 数据库副本。

5. 保证所有的服务器(hub 和 spokes)都运行了 AdminP。

6. 管理服务器必须列入每个用户邮件文件的访问控制列表( ACL )的高级部分以及 Domino 目录的 ACL 里(文件,数据库,访问控制)。

7. 在移动所有用户之前,先移动几个用户测试一下。如果测试成功,再移动余下的用户到新的域中。

8. 保证每个用户和/或管理员都有一个所有 ID 文件的备份复件(例如:user.id, server.id, cert.id)。

9. 备份所有其它重要文件,例如:user.id, server.id, cert.id, desktop.dsk, notes.ini, Domino 目录

一次性移动/转换大规模用户至新的域的步骤:

第一部分:

1. 交叉验证已有的 cert.id 文件和新的 cert.id 文件。

第二部分

1.在管理服务器上选择 Domino 目录。
2.在 Domino 的 People 视图下的菜单中选择以下命令:操作,重命名选定的个人,需要移动到新的验证者。
3.当出现提示时选择 原始验证者。
4.出现提示时输入 新验证者(=新的组织名称)
5.点击“确定”按钮。
6.在服务器控制台输入以下命令:Tell AdminP Process New

第三部分:

1. 打开 admin4.nsf 数据库。
2. 打开“名称移动请求视图”。
3. 在菜单中选择“操作”。
4. 为“已选择的条目”(这是顶层选项)选择“全部移动”.
5. 说明“新验证者”。
6. 点击“确定”两次。
7. 在服务器控制台输入以下命令:Tell AdminP Process New

第四部分:

当用户登陆 Notes,他们会看到服务器的以下验证信息:“你想更改名称吗?”。用户需要选择 Yes。
用户必须验证(authenticate)他们的主邮件服务器或 Domino 目录的管理服务器。服务器必须有更新过的 Domino 目录(names.nsf)和 admin4.nsf 文件的副本。

注意:由于修改用户是在验证(authenticate)的基础上进行的,当用户第一次验证时能引起巨大的 AdminP 峰值,典型的是在 09:00。由于服务器的性能问题,不推荐在一个阶段做这些。

第五部分:
必须手动修改所有的服务器文档和连接文档。(修改服务器名,域,用户名,用户主服务器,等等)


支持信息:

如果按照以上的指导大纲步骤操作,就无须担心用户访问不了自己的邮箱。一旦 AdminP 处理了请求,它会在个人文档里保留旧文件名和新文件名 21 天,为移动/复制过程提供足够的时间。21 天是默认值,除非详细指明天数。


在场所文档中改变域名的按钮

必须改变每个用户个人地址名册中的场所文档的域名。要做的这个,管理员可以给每个用户发送消息,包括一个修改域的按钮。以下是这个按钮的脚本程序:
  • Sub Click(Source As Button)
    Dim session As New NotesSession
    Dim view As NotesView
    Dim doc As NotesDocument
    Dim itm As NotesItem
    Dim db As New NotesDatabase("", "")

    Call db.Open( "", "names.nsf" )

    Set view = db.GetView( "Locations" )
    Set doc = view.GetFirstDocument

    While Not ( doc Is Nothing )
    Set itm = doc.ReplaceItemValue ("Domain", "NewDomain")
    Call doc.Save(True, True)
    Set doc = view.GetNextDocument( doc )
    Wend

    End Sub