Меню Закрыть

Автоматическое создание и подстановка подписи в Outlook 2003/2007 на основе данных AD.

Долгое время я искал решение для автоматизации создания подписи пользователей в Outlook по корпоративному стандарту. Хотя имеется и регламент, и инструкции для пользователей по созданию подписи, далеко не все обременяют себя её созданием, а в случае, если пользователи часто перемещаются с компьютера на компьютер, про нее вообще часто забывают 🙁

Просмотрев большое количество имеющихся решений, как правило на базе скриптов VBS, я остановился на одном из них, который, доработав, хочу предложить вашему вниманию. Данный скрипт берет данные текущего пользователя из AD и создает электронную подпись в соответствии с заданными параметрами. В случае, если некоторые поля в свойствах пользователя не заполнены, информация не отображается.  Для удобства редактирования подписи в зависимости от вашего стандарта, я привел подробные комментарии в теле скрипта. С моими настройками подпись имеет вид:
sign
Сам скрипт:
On Error Resume NextSet objSysInfo = CreateObject("ADSystemInfo")strUser = objSysInfo.UserName
Set objUser = GetObject("LDAP://" & strUser)strRegard = "С уважением,"
'Получаем полное имя
strName = objUser.FullName
'Должность
strTitle = objUser.Title
'Подразделение
strDepartment = objUser.Department
'Компания
strCompany = objUser.Company
'Номер телефона
strPhone = objUser.telephoneNumber
'Сотовый
strMobile = objUser.mobile
'Факс
strFax = objuser.facsimileTelephoneNumber
'IP-телефон, у себя не использую, так как внутренний номер дописываю в поле основного телефона
'strIntPhone = objuser.ipPhone
'Получаем почтовый индекс
strPostIndex = ObjUser.postalCode
'Город
strCity = objuser.l
'Улица
strStreet = objuser.streetAddress
'адрес электронной почты
strEmail = objuser.mail
'WEB страница
strWeb = objuser.wWWHomePage
'Логотип организации
'strLogo = "\\domain.corp\NETLOGON\company-logo.gif"

Set objWord = CreateObject(“Word.Application”)
Set objDoc = objWord.Documents.Add()
Set objSelection = objWord.Selection
Set objEmailOptions = objWord.EmailOptions
Set objSignatureObject = objEmailOptions.EmailSignature
Set objSignatureEntries = objSignatureObject.EmailSignatureEntries

‘Задаем настройки шрифта
‘Шрифт
objSelection.Font.Name = “Arial”
‘Размер
objSelection.Font.Size = “10”
‘Цвет, можно указывать в десятичном или RGB формате, тогда: RGB(0, 55, 110)
objSelection.Font.Color = -738164481
‘Формат
objSelection.ParagraphFormat.Space1

objSelection.TypeText strRegard
objSelection.TypeText CHR(11)
‘Вставляем полное имя
objSelection.TypeText strName
objSelection.TypeText CHR(11)
‘Должность
objSelection.TypeText strTitle
objSelection.TypeText CHR(11)
‘Подразделение
objSelection.TypeText strDepartment
objSelection.TypeText CHR(11)
‘Компанию
objSelection.TypeText strCompany
objSelection.TypeText CHR(11)
‘Уменьшаем размер шрифта для адреса
objSelection.Font.Size = “9”
‘Почтовый адрес
objSelection.TypeText strPostIndex & “, г. ” & strCity & “, ” & strStreet
objSelection.TypeText CHR(11)
‘Телефон
objSelection.TypeText “Тел. ” & strPhone ‘ доб. & strIntPhone
objSelection.TypeText CHR(11)
‘Сотовый
objSelection.TypeText “Моб. ” & strMobile
objSelection.TypeText CHR(11)
‘Факс
objSelection.TypeText “Факс ” & strFax
objSelection.TypeText CHR(11)
‘Изменяем цвет для адреса электронной почты и сайта
objselection.font.color = RGB(0, 0, 255)
‘Вставляем адрес почты
objSelection.Hyperlinks.Add objSelection.range, “mailto:” & strEmail, , , strEmail
objSelection.TypeText CHR(11)
‘корпоративный сайт
objSelection.Hyperlinks.Add objSelection.Range, strWeb, “”, “”, strWeb
‘objSelection.TypeText CHR(11)
‘логотип компании
‘objSelection.InlineShapes.AddPicture(strLogo)

Set objSelection = objDoc.Range()

objSignatureEntries.Add “Company Signature”, objSelection
objSignatureObject.NewMessageSignature = “Company Signature”
objSignatureObject.ReplyMessageSignature = “Company Signature”

objDoc.Saved = True
objDoc.Close
objWord.Quit
Сохраните скрипт в файл с расширением vbs и назначьте его выполнение с помощью GPO  в разделе пользователя.

 

Теперь у каждого из доменных пользователей (ну или у тех, на кого распространяется политика), при создании или пересылке сообщения будет использоваться стандартная корпоративная подпись. Отработка скрипта занимает около 2-х секунд и не сильно влияет на время логона пользователя.

24 Comments

    • Zihuatanejo87

      а куда делись комменты, которые я тут, на mcp.su видел неделю назад – все потерли?

    • Kvazar
      Kvazar

      Комменты я не тру, только спам. В чем проблема? Какие комменты Вы имеете в виду?

  1. kvazar

    Нет, я полагаю, что и этого достаточно, тем более последнее время и на него с трудом нахожу время 🙁

    • kvazar

      В Outlook в настройках появилась подпись? Попробуйте сначала запустить скрипт вручную на своей рабочей станции

  2. joni

    пробывал на мышке появляются часики типо скрипт срабатывает но изменений никаких нет. ошибок тоже не выдает. как еще проверить можно?

    • kvazar

      Какой стоит Word, Outlook? Какая система? Дело в том, что для создания подписи, как видно из скрипта, используется Word. Он у вас вообще стоит?
      P.S. Если затираете название домена, затирайте уж везде 🙂

    • Kvazar

      Что вы имеете в виду? В OpenOffice, насколько мне известно, нет почтового клиента.

  3. Алекs

    Посоветуйте как сделать чтобы у некоторых пользователей были разные логотипы? Согласно 1 скрипту.

    • Evgeny

      со своим вопросом разобрался)
      невнимательность и торопливость – причина.
      Раскоментировать надо было всего лишь!

  4. Banberry

    Хороший скрипт, только похоже будет запускаться каждый раз при логоне.
    Подскажите как проверить, что подпись с именем “Company Signature” уже существует, и добавлять ничего не надо?

  5. Уведомление:delaem podpis v Outlook | admgsg

  6. Woot

    Доброе время суток. всё отлично скрипт рабочий.
    проблема :
    у половины пользователей нет моб телефона.
    остаётся пустая строка. как командами “If” приспособить если есть телефон то его вешать , если его нет то не делать и не оставлять пустую строку.?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

два + двадцать =