Scripting 更改outlook联系人电子邮件地址的脚本

Scripting 更改outlook联系人电子邮件地址的脚本,scripting,vbscript,Scripting,Vbscript,Exchange2007环境。每个邮箱都有自己的本地联系人副本 我只是更改了我们的域以缩短它,而不是让用户进入并更改他们的每个本地联系人,我想编写一个脚本,迭代他们的每个本地联系人,如果电子邮件地址以'@oldmailaddress.com'结尾,我想将其更改为'@newaddy.com' 如果同样的脚本也能打开它们的.n2k文件并编辑这些地址,那就太好了 这可能吗?它是每个客户端的脚本,还是可以在Exchange2007服务器(无n2k)上运行的脚本或cmd 谢谢 我想我自己找到了解决办法 C

Exchange2007环境。每个邮箱都有自己的本地联系人副本

我只是更改了我们的域以缩短它,而不是让用户进入并更改他们的每个本地联系人,我想编写一个脚本,迭代他们的每个本地联系人,如果电子邮件地址以'@oldmailaddress.com'结尾,我想将其更改为'@newaddy.com'

如果同样的脚本也能打开它们的.n2k文件并编辑这些地址,那就太好了

这可能吗?它是每个客户端的脚本,还是可以在Exchange2007服务器(无n2k)上运行的脚本或cmd


谢谢

我想我自己找到了解决办法

Const olFolderContacts = 10
sOldDomain = "@olddomain.com"
sNewDomain = "@newdomain.com"

Set oOutlook = CreateObject("Outlook.Application")
Set oNamespace = oOutlook.GetNamespace("MAPI")

Set oContactFolder = oNamespace.GetDefaultFolder(olFolderContacts)

For Each item in oContactFolder.Items
    If InStr(1, item.Email1Address, sOldDomain, vbTextCompare) > 0 Then _
        item.Email1Address = Replace(item.Email1Address, sOldDomain, sNewDomain, 1, 1, vbTextCompare)
    If InStr(1, item.Email2Address, sOldDomain, vbTextCompare) > 0 Then _
        item.Email2Address = Replace(item.Email2Address, sOldDomain, sNewDomain, 1, 1, vbTextCompare)
    If InStr(1, item.Email3Address, sOldDomain, vbTextCompare) > 0 Then _
        item.Email3Address = Replace(item.Email3Address, sOldDomain, sNewDomain, 1, 1, vbTextCompare)
    item.Save
Next

Wscript.Echo "Finished."