дата последнего изменения: 24.01.2010
метки: Thunderbird, VBScript
В некоторой организации в качестве почтового клиента используется Mozilla Thunderbird. Есть потребность в общих адресных книгах — многим нужны контакты не только сотрудников, но и клиентов, поставщиков, партнеров, городских организаций и т.п.
Для хранения общих контактов выбран «родной» формат адресных книг — MAB. Другие способы создания общих адресных книг, в том числе через службу каталогов — по результатам испытаний признаны неудобными.
Mozilla Thunderbird не может использовать адресные книги формата MAB напрямую с сервера, поэтому они копируются каждому пользователю. После обновления контактов на сервере все скопированные файлы также необходимо обновлять, т.е. синхронизировать.
Для синхронизации адресных книг известны два расширения для Thunderbird.
Расширение "SyncMab" не работает в Thunderbird 3. Ранее в Thunderbird 2 хорошо работала версия 2.0, но не последняя, 3.1. Расширение давно не обновляется, так что ждать исправленной версии не приходится.
Расширение "Addressbooks Synchronizer" работает неустойчиво, при неправильной настройке Thunderbird «зависает», а иногда может совсем «вылететь». Обновление из общей сетевой папки работает только если у пользователя есть разрешение на запись. Но если всем пользователям дать такие права, гарантировать сохранность контактов будет невозможно. С доступом только для чтения синхронизация не работает. Вроде бы можно это обойти — групповой политикой копировать файлы адресных книг на компьютер пользователя в каталог %TEMP%, куда доступ на запись у пользователя есть. Но тогда пользователю придется самостоятельно искать этот каталог, т.к. расширение «не понимает» переменных окружения. Другие поддерживаемые протоколы — FTP, WebDAV или IMAP есть не на каждом сервере в сети Windows и также требуют дополнительной настройки у пользователя.
Для обновления общих адресных книг на компьютерах Windows XP/Vista/7 разработан скрипт mab_sync.vbs:
Скрипт для синхронизации общих адресных книг Mozilla Thunderbird в локальной сети, формат VBS, упакован ZIP: mab_sync.zip
В первую очередь скрипт находит путь к профилю Thunderbird. Информация берется из файла настройки профилей profiles.ini. Если имеется несколько профилей, выбирается только один из них — «по умолчанию». Если профиль не найден, выводится предупреждение.
Далее, в найденном каталоге скрипт читает файл пользовательских настроек Thunderbird — prefs.js. Если файл не найден, выводится предупреждение. Из файла отбираются строки с параметрами такого вида:
user_pref("ldap_2.servers.TEST.description", "TEST");
user_pref("ldap_2.servers.TEST.filename", "abook-1.mab");
Из этих строк выясняется соответствие имен адресных книг и MAB-файлов. Учитываются только адресные книги, перечисленные в настройках скрипта. Когда становится известен файл, он копируется с сервера, из указанного в настройках сетевого ресурса.
В конце скрипт выдает сообщение о результатах работы — какие адресные книги были найдены, откуда были скопированы, а если не скопированы, то почему. Можно отключить выдачу этого сообщения в настройках, тогда скрипт будет работать незаметно, см. параметр NOTIFY.
\\SRV\Mab. Доступ на запись дать только тем, кто действительно должен обновлять адресные книги. Остальным — разрешить только чтение.Настройки хранятся в тексте скрипта, в его начале, в виде значений констант. Рядом есть комментарии:
'Сетевой ресурс, где лежат адресные книги Const SRC = "\\SRV\Mab"
'Имена общих адресных книг (без расширения ".mab"), через запятую 'Такие же имена ДОЛЖНЫ быть у соответствующих адресных книг! Const MAB = "Office,Partners,Phones"
Направление синхронизации задается параметром UPLOAD. По умолчанию уже настроено для загрузки с сервера:
'Направление синхронизации Const UPLOAD = False 'загрузить С сервера 'Const UPLOAD = True 'выгрузить НА сервер
По умолчанию сообщение выдается. Чтобы его отключить, надо «переставить» символ комментария (одиночную кавычку) с одной строки на другую:
'Выводить сообщения? 'Const NOTIFY = True Const NOTIFY = False
В Thunderbird открыть окно «Адресные книги» и создать нужные, см. меню «Файл» — «Создать» — «Адресную книгу...». Очень важно задать правильные имена, т.к. именно по ним скрипт «находит» адресные книги, которые нужно обновлять.
Запускать скрипт лучше до Thunderbird, например при входе в систему, через ярлык в «Автозагрузке». Обновления, сделанные при запущенном Thunderbird появляются только после его перезапуска.
Обновлять общие адресные книги смогут только сотрудники, имеющие доступ на запись в каталог для хранения общих адресных книг.
Для выгрузки на сервер используется копия скрипта (ее можно назвать mab_sync_upload.vbs и поместить на своем компьютере), с отличием только в одном параметре:
'Направление синхронизации 'Const UPLOAD = False 'загрузить С сервера Const UPLOAD = True 'выгрузить НА сервер
Порядок действий:
При использовании материалов сайта не забудьте добавить ссылку на первоисточник!
Есть замечания, предложения или пожелания? → Сообщите автору!
Павел Железнов
ИТ-специалист
Метки:
1С:Предприятие DOS J2ME JavaScript Thunderbird VBScript WMI Web-программирование Windows восстановление достижения железо загрузка инвентаризация разное резервное копирование
Страницы: