我一直负责清理我们公司的Exchange Server 2003上的联系人数据库。这个联系人的数据库在过去的几年里一直被忽略,现在有点混乱。
我的问题是我有一个叫“Bob Smith”的人,而Bob被列为“学生”和“学生”。
我真的想要删除鲍勃和其他任何有相同类别的“学生”类别。
我的问题是,是否有一个简单的方法来编辑交换服务器上的联系人的主分类列表?
我觉得我缺less一些简单的东西,因为如果我正在玩我使用的类别,说组织电子邮件很容易做到这一点,但我似乎无法find正确的方法来做类别是在服务器上。
我试图通过Outlook 2007和Exchange 2003工作。
任何洞察力将是非常有帮助的,因为我真的不想手动改变8000多个联系人。
我的问题是,是否有一个简单的方法来编辑交换服务器上的联系人的主分类列表?
主分类列表是每个用户的设置。 它不存储在Exchange服务器上。
在Outlook 2003中,它存储在此位置的registry的当前用户部分中。
HKCU\Software\Microsoft\Office\11.0\Outlook\Categories\MasterList
如果您希望networking上的所有用户具有相同的类别,则可以导出registry的这一部分,然后将其导入其他用户。 不幸的是,你也将覆盖所有的类别。 由于这个键的格式合并在一起的类别不会很容易。 它是一个REG_BINARY,它包含分号分隔的unicode中的类别列表。
每个联系人logging都有一个字段,其中包含与联系人关联的类别列表。 没有简单的方法来点击一个button,并从所有联系人logging中删除给定类别。 你可以构build一个VBA脚本,通过循环遍历所有logging并删除该类别。
简单地将所有联系人导出为其他格式,根据需要操作它们,然后重新导入可能会更简单。
我很抱歉地说,但是自Outlook 2007以来,如果邮箱是默认存储,则Ben的使用版本,主分类列表(mcl)将存储在服务器上。 不pipe是否有Exchange服务器,registry不再使用。
但是,为了从联系人中删除类别,mcl的存储位置并不重要。 这是因为类别名称存储两次,一次在mcl中,一次存储在项目中。 所以,删除一个不会影响到其他。
如果你想重新组织你的类别,类别pipe理是一个有价值的工具(见: http : //www.vboffice.net/product.html?lang=en )。 它可以帮助你find和编辑“学生”和“学生”这样的双重类别。
有一次,你已经清理了你的mcl,这个工具也可以把它分发给其他客户端,不pipe是什么版本的Outlook。 而且你可以决定是否覆盖现有的mcl或者将它与你的合并。
我做了一个简单的AutoIt脚本来部署类别
#include <File.au3> #include <Array.au3> $sFilePath="Kategorien.csv" $outlook = ObjCreate("Outlook.Application") If Not @error Then $ns = $outlook.getnamespace("Mapi").categories Local $aArray[1][3] _FileReadToArray ( @ScriptDir&"\"&$sFilePath,$aArray, 2,";") $Anzahl=UBound ($aArray) -1 ProgressOn("Outlook Kategorieimport", $sFilePath &" wird Importiert ", "0%") For $i = 1 to $Anzahl $aArraySub=$aArray[$i] $Name=StringReplace($aArraySub[0],'"','') $Color=StringReplace($aArraySub[1],'"','') $ShortcutKey=StringReplace($aArraySub[2],'"','') $ns.add($Name,$Color,$ShortcutKey) $pc=100/$Anzahl * $i ProgressSet(round($pc,0), round($pc,0) & "%") Sleep(500) Next ProgressSet(100, "Fertig", "Ferig") Sleep(500) ProgressOff() Else EndIf
导入文件:Kategorien.csv
"Name";"Color";"ShortcutKey" "Kategoriename";"1";"0"