Domino 下批量删除邮箱用户个人配置文档及数据库文件
近期一直在看Domino相关的文章,加上公司也用的是Domino系统,然后加上公司的用户数据量比较庞大,而且人员流动比较大,每日入职删除的人员比较多,这样给管理员的工作添加了很大的负担,那有什么好的办法能批量进行操作么。答案是有,那就创建一个domino库来实现,具体操作见下;
环境介绍:
我环境内放了两台Domino server,分别为:
Domain-mail01.gawian.com
Daomin-mail02.gawain.com
而且在每个服务器上创建了不同用户来进行实验,具体见下;
Lisi、lili创建在Domino-mail01.gawain.com上
Bob、bod创建在Domino-mail02.gawain.com上
接下来就开始了。首先是要安装Notes的一个插件,Domino desiguer;
安装完成后打开该插件----单击文件---应用程序—新建
服务器选择第一台----标题:delUser(delUser.nsf)然后确认
然后会自动打开该数据库,见下图
选定该数据库后---新建表单
为该表单设置一个名称:F1,然后打击确认
单击该表单后—右击—创建操作
为该操作创建一个名称:del names person,然后单击关闭
然后自动打开该操作;选择操作类型:lotusscript
然后在操作中填写执行代码:
代码内容:
Sub Click(Source As Button)
Dim se As New NotesSession
Dim db As NotesDatabase
Set db = se.GetDatabase(se.CurrentDatabase.Server,"names.nsf")
'db对象是 names库
Dim dc As NotesDocumentCollection
Set dc = db.UnprocessedDocuments
'dc是选择的个人文档集合
Dim doc As NotesDocument
Set doc = dc.GetFirstDocument()
If doc Is Nothing Then
Msgbox "没有选择个人文档。"
Exit Sub
End If
Dim mailFiledName As String
Dim mailDB As NotesDatabase
While Not doc Is Nothing
'这个变量是个人文档里的邮件库的路径
mailFiledName = doc.MailFile(0)
mailFiledName = mailFiledName + ".nsf"
'取个人的邮件数据库
Set mailDB = se.GetDatabase(se.CurrentDatabase.Server,mailFiledName)
If Not mailDB.IsOpen Then
'邮件库没了
Msgbox doc.FullName(0) + "的邮件库不存在。"
Else
'删除邮件库
Call mailDB.Remove()
Msgbox doc.FullName(0) + "的邮件库已被删除。"
End If
'Msgbox doc.FullName(0) + "的个人文档已被删除。"
Set doc = dc.GetNextDocument(doc)
Wend
Call dc.RemoveAll(True)
Dim ws As New NotesUIWorkspace
Call ws.ViewRefresh()
Msgbox "个人文档已全部删除"
End Sub
将代码复制进去后,单击保存
然后在创建域
为该域创建一个名称:ff,勾选允许多值;样式选择—自身的os样式
然后选择多值选项:勾选逗号、分好、换行
单击保存
F1为创建的表单
然后单击“帧结构集,然后单击创建:帧结构集
选择第一个,帧结构数为2,单击确认
然后右击帧结构属性
为该帧结构选择表单:为之前创建的名称为F1的表单
然后单击保存
提示输入帧结构集的名称:mm
然后右击数据库---应用程序---属性
选择帧结构集:mm
单击保存
保存后会在相应的目录生成一delUser.nsf数据库,然后将该数据库拷贝到服务器上,通过names.nsf数据库打开或者双击打开即可;
然后提示输入要输入的用户名
我们目录下有4个用户,我们都需要将其删除
输入后单击删除name里的个人文档和邮箱
提示说用户的数据库已经被删除
接着提示用户的个人文档已被删除
所指定的用户个人文档及数据库删除完成后提示删除完成
查看mail文件夹下的数据库是否存在;已经删除了指定人的数据库
该实验已完成,谢谢