Я пытаюсь создать список контактов для Outlook 2010, который будет содержать контактную информацию для каждого человека в моей компании. Я намерен поддерживать список в актуальном состоянии, что означает, что я буду вручную добавлять новых сотрудников в список контактов и удалять контакты, которые больше не работают здесь.
Список контактов будет находиться в отдельной подпапке в папке контактов Outlook.
Я хочу периодически экспортировать этот список контактов в виде файла .csv и позволять другим сотрудникам компании импортировать его в Outlook на своем компьютере, тем самым предоставляя им полный и актуальный список контактов компании.
Проблема в том, что Outlook 2010 хочет только объединять списки контактов, а не перезаписывать их. Это означает, что любые контакты, которые больше не работают в компании, не будут удалены из списков контактов на рабочих местах сотрудников.
Есть ли способ заставить Outlook 2010 перезаписать список контактов?
О, как я скучаю по временам Outlook 2003 и его аккуратных файлов .pab.
Хорошо, во-первых, позвольте мне сказать, что довольно непонятно, что вы здесь пытаетесь сделать, но до боли ясно, что вы делаете это «неправильно».
Прежде всего, поскольку похоже, что у вас нет сервера Exchange, я мог бы предложить его приобрести. Вероятно, это не тот, которым вы управляете сами, но в наши дни вы можете получить размещенное решение Exchange очень дешево (мой небольшой клиент с ~ 200 пользователями платит чуть менее 5 долларов за почтовый ящик / ГБ в очень хорошем центре обработки данных с хорошей хостинговой компанией, поддерживающей их вверх). Это решит проблему необходимости обновления контактов и адресов электронной почты для людей внутри компании, потому что Exchange и AD позаботятся об этом за вас.
Далее, если вы действительно хотите пойти по пути ведения списка пользователей электронной почты вручную, есть гораздо более простой способ сделать это. Это руководство от office.microsoft о том, как настроить совместное использование контактов в Outlook.. В твоем случае:
Company Address Book
, например.У вас будет одно центральное место для обновления контакта, и вы не будете беспокоиться о том, чтобы отправлять изменения всем, потому что каждый будет извлекать изменения при доступе к папке контактов.
Если, кстати, у вас есть сервер Exchange, обновите свой вопрос, и я обновлю свой ответ. Есть несколько действительно простых способов сделать это с помощью Exchange и даже достичь определенного уровня автоматизации, поэтому вам не нужно вручную обновлять контакты в профиле Outlook учетной записи службы.
Это действительно неправильный способ сделать это. Вы хотите получить ваши контакты с сервера LDAP - либо Exchange, либо другой настроенный вами. (связанная статья предназначена для Outlook 2007, но аналогичная информация доступна для 2010 года).
Это гарантирует, что у всех всегда будут актуальные контакты (при условии, что они могут разговаривать с сервером LDAP), и что изменения будут получены всеми своевременно.
Если по какой-то причине вы не можете использовать LDAP (почему?), Вы можете написать сценарий PowerShell, который удаляет все контакты, а затем импортирует новый список.
Что-то вроде этого должно работать для бита удаления:
olSession = (New-Object -ComObject Outlook.Application).Session
$olSession.Logon('Outlook') #Outlook is the profile name
$myContacts = $olSession.GetDefaultFolder($contactsFolder).Items
foreach ($Contact in $myContacts) {
$Contact.Delete()
}
и импорт может быть написан сразу после него (или выполнен, как вы это делаете сейчас).
Disclaimer: I'm a unix guy and I know dick-all about PowerShell - This was modified from a script I found [here](http://www.powershellneedfulthings.com/?p=35), and is entirely untested.