Главная Exchange/UC, Без рубрики, Новое Управление клиентскими подписями MS Outlook при помощи GPP
  • Управление клиентскими подписями MS Outlook при помощи GPP

    clip_image001В прошлой статье «Disclaimer в Exchange 2010, как механизм создания подписей» было рассказано, как добавить определенную подпись ко всем сообщениям, проходящим через транспортный сервер-концентратор. Сейчас я хочу поговорить на тему того, как управлять уже имеющимися подписями в MS Outlook`e.

    Избавляемся от уже имеющихся пользовательских подписей

    Почему управлять имеющимися подписями необходимо? Потому, что зачастую у пользователя уже есть настроенная подпись для писем и в случае использования disclaimer`a, будет очень не красиво, если письмо придет сразу с двумя подписями. Чтобы такого не произошло, я предлагаю поступить решительно, и попросту удалить все пользовательские подписи. Возможно это не лучший вариант, если вы предложите свой – буду вам весьма признателен.

    Файлы подписей MS Outlook хранит в папке %AppData%\Microsoft\Signatures, в профиле пользователя на локальном компьютере (рис.1).

    clip_image002

    Рис.1: Папка с файлами подписи в профиле пользователя.

    Раз так, то не составит труда модифицировать содержимое этой директории. Для этого необходимо воспользоваться групповыми политиками, а если быть точнее, то Group Policy Preferences.

    Думаю, что не нужно рассказывать, как создать объект групповой политики и, куда его нужно применить, чтобы он заработал. Перейдем сразу к настройке.

    Для того, чтобы избавиться от пользовательских подписей, нужно удалить все содержимое папки %AppData%\Microsoft\Signatures на локальных компьютерах. Для этого откроем на редактирование объект групповой политики и перейдем в раздел Preferences – Windows Settings – Folders, здесь создадим новый объект – папку, у которой в действиях укажем Replace (Заменить), введем выше озвученный путь и выберем параметры замены – Delete all files in folder(s) и Allow deletion of read-only files/folders (рис.2).

    clip_image003

    Рис.2: Удаляем содержимое папки при помощи Group Policy Preferences.

    В результате, после применения групповой политики, в профиле пользователя будет удалена указанная папка, её содержимое и соответственно все подписи в MS Outlook.

    Импорт подписи на локальные компьютеры пользователей

    В прошлой статье я акцентировал внимание на то, что в подпись, созданную при помощи disclaimer`a можно вставить изображение при помощи тэга <IMG>, но это не очень удобно, т.к. велика вероятность того, что изображение не будет загружено получателем во время открытия письма.

    Для решения этой проблемы я предлагаю вложить в письмо логотип компании путем создания штатной подписи в MS Outlook, содержащей только изображение. Другими словами, нужное изображение будет интегрировано в письмо как классическая подпись MS Outlook`a, а текстовая часть будет добавлена при помощи disclaimer`a, т.е. подпись будет составной. Согласен, решение не самое изящное, так что если у кого-то есть другое – добро пожаловать в комменты.

    Итак, приступим:

    Для решения поставленной задачи необходимо на тестовом компьютере в MS Outlook`e создать подпись нужного вида (только с изображением и без текстовой части), скопировать все содержимое папки %AppData%\Microsoft\Signatures в общедоступную сетевую папку и сконфигурировать несколько дополнительных параметров в ранее созданном объекте групповой политики.

    Для начала, если мы внимательно посмотрим на рис.1, то заметим, что кроме самих файлов подписи, в папке Signatures есть ещё одна папка с названием <имя подписи>.files. Её нужно будет заново создать, а если точнее, то в данном примере уместнее будет действие Обновить. Для этого создаем в разделе Folders ещё один объект – папку, указываем для неё действие Update (Обновить) и соответствующий путь – %AppData%\Microsoft\Signatures\<имя подписи>.files.

    Закончив настройку папок, перейдем в раздел Files. Здесь нужно создать нужное количество объектов – файлов, в настройках которых выбрать действие Update (Обновить), указать файл-источник в сетевом хранилище (созданном ранее) и указать путь, куда файл необходимо скопировать, см.рис.3.

    clip_image004

    Рис.3: Копирование файлов подписи при помощи Group Policy Preferences.

    В результате, создание записей для всех файлов шаблонной подписи приведет к тому, что после применения групповой политики у пользователя появится ещё одна подпись, которую он сможет самостоятельно выбрать. А если учесть тот факт, что ранее все остальные его подписи мы уже удалили, то соответственно выбрать он сможет только одну подпись.

    Примечание: К сожалению, мне не известно как установить новую подпись в качестве подписи для новых сообщений. Если у вас есть такая информация – пожалуйста поделитесь.

    Справедливости ради, надо заметить, что шаблоны ADM/ADMX для MS Office 2010 содержат несколько политик по управлению подписями MS Outlook, но в основном их действия сводятся к отключению подписей как таковых и они не предоставляют возможностей установить какую-то  определенную подпись для использования в новых сообщениях.

    Ограничения

    Нужно понимать, что созданные таким образом локальные подписи применяются только к сообщениям, отправленным через Microsoft Outlook, это означает, что если пользователь будет отправлять почту через браузер при помощи Outlook Web App, или со своего коммуникатора через Exchange ActiveSync, то в этих случаях добавить логотип не получиться. Будет вставлена только информация, указанная в disclaimer`e.

    Справедливости ради, нужно заметить, что штатным методом в Outlook Web App нельзя вставить изображение в подпись (рис.4).

    image

    Рис.4: Установка подписи для писем, отправляемых через Outlook Web App.

    К сожалению, с Exchange ActiveSync в плане изображений в подписи, все тоже достаточно грустно. Для редактирования подписей на Windows Mobile 6.5 необходимо открыть Outlook – нажать кнопку MenuToolOptionsSignatures (рис.5) – далее выбрать нужную учетную запись и отредактировать текстовую часть подписи.

    image

    Рис.5: Редактирование подписей на Windows Mobile 6.5

    Очевидно, что изображения здесь добавить тоже не получиться.

    Заключение

    Не могу не упомянуть тот факт, что безусловно, существует целый ряд утилит сторонних разработчиков, которые позволяют проделать те же самые действия, только с гораздо меньшими трудозатратами, но к сожалению все они являются платными и рассматривать их здесь я смысла не вижу. Уверен, что если грамотно сочетать функционал транспортных правил сервера Exchange 2010 и Group Policy Preferences, то можно добиться отличного результата.

    Алексей Богомолов (Alexx)
    http://alexxhost.ru

Комментарии

  1. решил этот вопрос при помощи скрипта и GPo, закинул в общую папку, открытую на чтение, болванки для подписей (у нас были утверждены два типа подписей, с фото манагера и общая, для всех)

    Правда потом руками правили информацию в подписи уже сами сотрудники

    Это не очень то меня устраивает.

    Есть желание дописать скрипт чтобы при помощи PS можно было из AD “вытаскивать” информацию о пользователях и добавлять в соответствующие поля в HTML файле

    алгоритм выглядит просто

    1. Запуск скрипта и загрузке профиля
    2. через переменные срЕды получаем логин пользователя
    3. обращаемся с AD
    4. получаем информацию пользователя (ФИО, должность, телефон, филиал итп…)
    5. Удаляем все из папки Signatures (или перемещаем)
    6. Копируем “болванку подписи в соответствующую папку
    7. открываем HTML файл на редактирование
    8. ищем в файле нужные выражения (например ) и заменяем на нужное нам выражение
    9. Сохраняем и выходим

    ЗЫ: сервер и клиенты 2007-ой версии. пока нет времени на написание скрипта т.к. не очень хорошо знаком с PowerShell, если у кого есть идея получше напишите мне на мыло плз

  2. Для того, чтобы поставить подпись по-умолчанию для нового письма и ответа, нужно в реестре сделать следующее:
    1. Создать (если нет) ключ HKLMSoftwareMicrosoftWindows NTCurrentVersionWindows Messaging SubsystemProfilesOutlook9375CFF0413111d3B88A00104B2A66760000002″

    2. Создать два двоичных параметра (REG_BINARY) “New Signature” и “Reply-Forward Signature”
    3. Конвертнуть название вашей подписи в двоичный формат. (Я писал на C#. используя самописную функцию StringToByteArray – код ниже)
    4. Присвоить параметрам значения.
    5. перезапустить Outlook.

    Код функции:
    private Byte[] StringToByteArray(String strSigName)
    {
    Char[] charSig = strSigName.ToCharArray();
    Byte[] bSing = new Byte[22];
    int i = 0;

    foreach (Char c in charSig)
    {
    bSing[i] = Convert.ToByte(c);
    bSing[i + 1] = Convert.ToByte(0);
    i++; i++;
    }
    return bSing;
    }

    По поводу комментария предыдущего:
    Решение генерации подписи я решил утилиткой, которую каждый сотрудник должен был один раз запустить при первом входе в систему.
    1. Она получала имя пользователя.
    2. Вытаскивала из АД данные для двух подписей (английский/русский)
    3. Недостающие поля предлагалось ввести пользователю.
    4. При нажатии кнопки генерации, утилита копирует из шары шаблон с маркерами (например, %TITLE%, %SURNAME%, %EMAIL% и т.п.), который представляет собой HTML-документ и TXT-файл.
    5. Маркеры заменяются на нужные значения в обоих файлах и на основе HTML-файла генерируется rtf-документ
    6. Все файлы копируются в %AppData%MicrosoftSignatures
    6. В реестр, в параметры “New Signature” и “Reply-Forward Signature” Outlook 2007/2010 вносится имя подписи.
    При генерации не нужно забывать, что письма могут быть не только в HTML-формате, но и Plain-text и RTF.

    Если кого-то заинтересует сама утилита, могу скинуть исходники на C#.

  3. Прощу прощения, в предыдущем комменте ошибка – пропущен “” в конце ключа. Правильный путь:
    HKLMSoftwareMicrosoftWindows NTCurrentVersionWindows Messaging SubsystemProfilesOutlook9375CFF0413111d3B88A00104B2A6676000002

    P.S. В редких случаях в реестре будет путь не […]ProfilesOutlook[…], а […]ProfilesMail[…], но на работу не влияет и я пользовался только первым вариантом.

  4. Блин. Движок сайта режет текст в конце ключа “Outlook 9375CFF0413111d3B88A00104B2A6676 00000002

  5. Для Sherd:

    >Для того, чтобы поставить подпись по-умолчанию для нового письма и >ответа, нужно в реестре сделать следующее

    Спасибо, искал как это сделать, но гугл мне не помог.
    если еще подскажите как всем поставить один и тот же шрифт, размер шрифта… через реестр (или ресурс где про это можно почитать) то тогда вам троекратное ура )

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

    Это не совсем хорошо, когда пользователь должен что то запускать и думать еще… у меня потом не хватает терпения отвечать на глупые вопросы, потому как найдется массу сотрудников, которые мануал не читают или если прочли то ничего не поняли. Лучше автоматизировать, при том без участия сотрудника менять подпись, и еще лучше чтобы запуск и генерация подписи проходила через политики AD, потому как не хочется тратить своё драгоценное время в таких случаях когда сотрудник меняет рабочий комп или приходит новый сотрудник итп…

    >При генерации не нужно забывать, что письма могут быть не только в >HTML-формате, но и Plain-text и RTF.

    Outlook сам создает plain-text подпись при необходимости, если есть подпись в html, в rtf не проверял, но думаю что тоже самое.

    >Все файлы копируются в %AppData%MicrosoftSignatures

    Если установлена Vista или W7 то путь, к сожалению, другой, в таком случае надо еще добавить проверку версии ОС и менять на соответствующий путь

    >Если кого-то заинтересует сама утилита, могу скинуть исходники на C#.

    C# для меня “тёмный лес”. имхо лучше использовать скрипт на PowerShell, тем более что это более чем “кашерно” для Windows систем

  6. Sherd
    >Если кого-то заинтересует сама утилита, могу скинуть исходники на C#.

    Конечно интересует. Скиньте мне на _lexa собачка inbox.ru

  7. Sherd
    >Если кого-то заинтересует сама утилита, могу скинуть исходники на C#.
    Заинтересовало. Брось пожалуйста на sitnikov.feka(@)gmail.com

  8. Sherd?
    >Если кого-то заинтересует сама утилита, могу скинуть исходники на C#.

    Заинтересовало. Брось пожалуйста на sitnikov.feka(@)gmail.com

  9. Sherd?

    >Если кого-то заинтересует сама утилита, могу скинуть исходники на C#.

    Заинтересовало. Брось пожалуйста на dbond007 (@) pisem.net

  10. Sherd?
    >Если кого-то заинтересует сама утилита, могу скинуть исходники на C#.

    скиньте на почту peach.passions (@) gmail.com

  11. Sherd?
    >Если кого-то заинтересует сама утилита, могу скинуть исходники на C#.
    если не сложно скиньте на почту n.y.x (@) mail.ru

  12. Добрый день, если не затруднит исходники утилиты на почту flemm@ya.ru

  13. Здесь написано как установить новую подпись в качестве подписи для отправки сообщений.

    http://www.howto-outlook.com/howto/corporatesignatures.htm