背景:
我是几台Windows 7计算机的系统管理员。我们已从内部部署Exchange服务器切换到Office 365 Exchange Online。计算机使用Outlook 2013/2010连接到Exchange Online。所有客户端都使用完全缓存模式,因此每台计算机上都有一个完整的OST缓存文件。
因此,现在Outlook的“文件夹”视图中显示以下文件夹:同步问题,然后(子文件夹)冲突,本地故障和服务器故障。
我找不到远程管理或查看这些邮件的方法,因此我唯一的选择似乎是手动打开每个用户的Outlook并查看文件夹。我已经尝试设置规则来转发这些文件夹中显示的任何邮件给我,但我无法让他们处理这些文件夹中出现的新电子邮件。
我想编写一个脚本,将这些文件夹中的电子邮件保存到网络文件夹中,以便稍后查看。如果可能的话,我还希望脚本在网络上所有计算机名称的输入文本文件上运行。
我没有编写背景或知识的脚本。这是我到目前为止从网上拼凑而成的内容:
Dim OL, NmeSpace
Set OL = CreateObject("Outlook.Application")
Set NmeSpace = OL.GetNamespace("MAPI")
Set Inbx = NmeSpace.GetDefaultFolder(olFolderSyncIssues)
Set Fldr = Application.ActiveExplorer.CurrentFolder
DirName = "C:\Emails\"
For Each itm In Fldr.Items
' Save email as a file.
Next
提前感谢您提供的任何建议。我正在学习脚本,但我还没有编写我想要的脚本的知识。
答案 0 :(得分:0)
以下是使用vbscript进行此操作的方法。现在它只执行oSyncFolder,因为我遗漏了其他两个文件夹,所以你可以自己写一些练习。
Dim oApp
Dim ns
Dim oSyncFolder
Dim oConflictFolder
Dim oSrvFailuresFolder
Dim dirName
dirName = "PathToFolder\"
Set oApp = CreateObject("Outlook.Application")
Set ns = oApp.GetNamespace("MAPI")
Set oSyncFolder = ns.GetDefaultFolder(20)'olFolderSyncIssues
Set oConflictFolder = ns.GetDefaultFolder(19)'olFolderConflicts
Set oSrvFailuresFolder = ns.GetDefaultFolder(22)'olFolderServerFailures
Dim iCounter
iCounter = oSyncFolder.Items.Count
For iCounter = oSyncFolder.Items.Count To 0 Step -1
Dim oItem
Set oItem = oSyncFolder.Items.Item(iCounter)
oItem.SaveAs dirName & "email" & CStr(iCounter) & ".msg"
'uncomment line below to remove the item after it has been relocated.
'oItem.Delete
Next
Set oSyncFolder = Nothing
Set oConflictFolder = Nothing
Set oSrvFailuresFolder = Nothing
Set oApp = Nothing
msgbox "Finished"