大家好,才是真的好。
一直在讲Domino管理中的单个网络 域,很少讲到多个Domino网络域的管理。其实,很多企业会有多个Domino网络域。因为以前多个部门或组织、企业等合并,或者隔离国内和国外的目录隔开等等,都会产生多个names.nsf目录,产生多网络域环境。
在这种环境下,我们在进行不同的网络域管理时,一般都是通过Domino Admin管理客户机中的网络域图标来切换实现,如下图:
看起来是不是一模一样,很难区分?
所以,很多管理员在苦苦思索,如何通过不同的图标的方式来实现快速切换?
嗯,国外有个哥们在此方面进行了研究,而且乐此不彼,一直研究出来为止,效果如下图:
我们不卖关子,直接上答案:该图标存在于Domino Admin管理客户机的bookmark.nsf数据库中,你可以用Designer客户机打开该数据库,找到AdminBookmarkOrder大纲,编辑一下,如下图:
然后将你上传的图标上传即可,如下图:
重新启动一下Domino Admin客户机,即可看到网络域图标变成你指定的图片了。
当然如果你不想手动编辑的话,也没关系,可以采用下面的代码来进行更新:
%REM
Created Jun 10, 2023 by Thomas Hampel
Description: Comments for Agent
%END REM
Option Public
Option Declare
Sub Initialize
Dim s As New NotesSession
Call SetAdminBookmarkImage ("INTERN", "HCL Domino_Color_Icon_32.png")
End Sub
%REM
Function AdminBookmark
Description: Comments for Function
%END REM
Function SetAdminBookmarkImage (DomainName As String, ImageName As String) As Boolean
Dim outline As NotesOutline
Dim oe As NotesOutlineEntry
SetAdminBookmarkImage = False
'# open Bookmarks.nsf locally
Dim db As New NotesDatabase ("", "bookmark.nsf")
If Not db.isopen Then
Print "Unable to open bookmark.nsf"
Exit function
End If
'# get Outline
Set outline = db.GetOutline("AdminBookmarkOrder")
Set oe = outline.GetFirst()
'# first Outline entry level (must) have label "($Admin)"
If oe.Label = "($Admin)" Then
'# step one level down
Set oe = outline.Getchild(oe)
'# loop all children
While Not oe Is Nothing
If (oe.Label = DomainName$) Then
'# set imageName
Print "Changing bookmark icon image of " & oe.label & " to " & ImageName$
oe.Imagestext = ImageName$
Call Outline.Save()
End If
Set oe = outline.Getnextsibling(oe)
Wend
End If
SetAdminBookmarkImage = true
End Function
不过,这里也有一个不太好的消息,就是如果你尝试在Domino Admin中更新服务器列表时,该图标会消失。好在你可以用代码很快地再写回来。
还有一个好消息,如果你使用Domino 14版本,有个管理中心数据库Admin Central,它会每个域创建不同的数据库图标。
该技术文档原文地址:https://blog.thomashampel.com/blog/tomcat2000.nsf/dx/admin-client-custom-icons-for-each-domain.htm
欢迎阅读。
今天我们就讲到这里吧。更多文章可关注微信公号:协作者