Назад | Перейти на главную страницу

Есть ли способ перезаписать (не объединить) контакты Outlook при импорте из файла?

Я пытаюсь создать список контактов для Outlook 2010, который будет содержать контактную информацию для каждого человека в моей компании. Я намерен поддерживать список в актуальном состоянии, что означает, что я буду вручную добавлять новых сотрудников в список контактов и удалять контакты, которые больше не работают здесь.

Список контактов будет находиться в отдельной подпапке в папке контактов Outlook.

Я хочу периодически экспортировать этот список контактов в виде файла .csv и позволять другим сотрудникам компании импортировать его в Outlook на своем компьютере, тем самым предоставляя им полный и актуальный список контактов компании.

Проблема в том, что Outlook 2010 хочет только объединять списки контактов, а не перезаписывать их. Это означает, что любые контакты, которые больше не работают в компании, не будут удалены из списков контактов на рабочих местах сотрудников.

Есть ли способ заставить Outlook 2010 перезаписать список контактов?

О, как я скучаю по временам Outlook 2003 и его аккуратных файлов .pab.

Хорошо, во-первых, позвольте мне сказать, что довольно непонятно, что вы здесь пытаетесь сделать, но до боли ясно, что вы делаете это «неправильно».

Прежде всего, поскольку похоже, что у вас нет сервера Exchange, я мог бы предложить его приобрести. Вероятно, это не тот, которым вы управляете сами, но в наши дни вы можете получить размещенное решение Exchange очень дешево (мой небольшой клиент с ~ 200 пользователями платит чуть менее 5 долларов за почтовый ящик / ГБ в очень хорошем центре обработки данных с хорошей хостинговой компанией, поддерживающей их вверх). Это решит проблему необходимости обновления контактов и адресов электронной почты для людей внутри компании, потому что Exchange и AD позаботятся об этом за вас.

Далее, если вы действительно хотите пойти по пути ведения списка пользователей электронной почты вручную, есть гораздо более простой способ сделать это. Это руководство от office.microsoft о том, как настроить совместное использование контактов в Outlook.. В твоем случае:

  1. Создайте пользователя учетной записи службы. Company Address Book, например.
  2. Настройте или импортируйте контакты.
  3. Отправьте всем электронное письмо с приглашением получить доступ к почтовому ящику.
  4. При необходимости обновите контакты.

У вас будет одно центральное место для обновления контакта, и вы не будете беспокоиться о том, чтобы отправлять изменения всем, потому что каждый будет извлекать изменения при доступе к папке контактов.

Если, кстати, у вас есть сервер 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.