公司的人数众多,使用的是domino8.5+Exchange邮箱系统。
我们知道microsoft已经推出windows azure服务,所谓的公有云,我们已经在前面的几篇文档内介绍了,具体信息我就不多介绍了;自从公司购买了windows azure服务后,领导建议开始优化邮件服务的架构,将本地的服务器开始迁移windows azure运行,从IBM的官网得知,一台domino服务器最大承载用户2000-2500人,可我们在真实使用中,跟预想的不一样,只能跑1000-1200个用户,服务器能运行多少用户直接跟服务器的性能有直接关系,我们本地的所有domino服务器都运行在虚拟机上,给的最大内存是4G,CPU一颗等,所以运行1000-1200人我觉得是算是正常了。言归正传,既然是优化,那怎么做呢?那就是在windows azure上创建虚拟机,然后安装domino,启用新的邮件服务器,然后将本地的邮箱用户迁移到windows azure上的邮件服务器上,就这么简单,但是问题是,之前在本地对部分用户做过邮件迁移,比如从mail01迁移到mail02上,这样就会在mail01和mail02上都有对应的邮箱数据库,可实际用户只需要在mail02上有对应的数据库就行了,可mail01上换有用户的数据库文件,这样用户越来越多就会浪费磁盘空间,及迁移时间。所以需要怎么做呢?我们先将迁移的服务器domino导出信息,然后通过vbs拷贝数据,这样就不会有问题,
首先是定义一个xlsx文件(1.xlss),文件可以任意命名,但是需要跟脚本内的文件对应。然后定义拷贝源(d:\data),然后定一些扩展名为.nsf的文件,然后在对应的创建一个目标源(e:\data)。具体见下:
1.如果我们仅需要导出指定服务器上的目录信息,通过notes控制台打开names.nsf数据------Messaging--------Mail Users,可以通过鼠标选定后,右击导出
2.定义脚本内容:
1>.对比文件------脚本读取的对比文件,以文件内容为准进行拷贝。
2>.源文件-----通过脚本内的文件跟源文件对比,将相同的数据进行拷贝。
3>.目标文件-----对比后,将相同的文件拷贝后存放的路径
脚本内容。
脚本内容:
currentFolder=CreateObject("wscript.shell").currentDirectory&"\" filename1=currentFolder&"1.xlsx" sourceFolderPath="d:\data" ‘‘‘‘.nsf存放目录 desFolderPath="e:\data\" ‘‘‘‘拷贝的目标目录 Set dic=CreateObject("scripting.dictionary") Set fso=CreateObject("scripting.filesystemobject") Set sourceFolder = fso.GetFolder(sourceFolderPath) Set desFolder=fso.GetFolder(desFolderPath) Set excelObject=CreateObject("Excel.Application") Set workbook1=excelObject.Workbooks.Open(filename1) Set workbook1_sheet=workbook1.Sheets("Sheet1") workbook1_rowcount=workbook1_sheet.usedrange.rows.count For i=0 To workbook1_rowcount content=Trim(workbook1_sheet.range("A1").offset(i,0).value) If Not dic.Exists(content) Then dic.Add content,content End If Next For Each file In sourceFolder.Files fileNameStr=file.Name fileNameArray=Split(fileNameStr,".",-1) fileName=fileNameArray(0) If(dic.Exists(fileName)) Then fso.CopyFile file.Path,desFolderPath,true End If Next workbook1.Close Set workbook1=Nothing Set excelObject=Nothing Set dic=nothing MsgBox "执行成功" Function RegExpTest(pattern,str) Set reg = New RegExp reg.Pattern=pattern reg.Global=True reg.IgnoreCase=True RegExpTest=reg.Test End Function
3.定义好脚本后,我们新建需要的对比文件,1.xlsx(sheet1)
4.设置源路径及内容
5.设置路标路径
6.然后将对比文件(1.xlsx)文件和定义好的脚本文件存放在一个目录下。
7.开始运行:双击运行即可。
8.看看结果:
vbs读取文件内的信息将对应数据拷贝到其他路径