Поступило задание проработать возможность централизованного создания пользовательских подписей в Outlook на основе данных из их учетных записей в Active Directory и так же запрета пользователям задавать свои подписи.
В сети есть много разных примеров скриптов как это можно реализовать, различной степени годности, но мне привычней реализовать задачу так как в первую очередь удобней мне. Поэтому я решил написать утилиту с использованием WinAPI Windows для формирования подписи на основе шаблона и с возможностью удобной модификацией шаблонов и используемых пользовательских данных из AD.
В состав утилиты входят:
- Шаблоны подписы из 3х файлов в форматах
htm
(HTML),rtf
(Rich Text) иtxt
(Plain Text). - Файл настроек
settings.txt
, в котором прописаны ключи и значения для шаблонов. - Сама утилита
outlook_signature.exe
.
В файлах шаблона указываются переменных которые будут заменены на полученные данные из пользовательской учетной записи AD. Переменные по умолчанию указываются в значении заключенном в знаки %
— %USERNAME%
.
Пример как должен выглядить шаблон:
Regards, %USERNAME% %POSITION% %DEPARTMENT%
В файле настроек settings.txt
указываются ключи и переменные к ним, под ключами понимается указание названия аттрибутуов из учетной записи AD. Переменные к ключам задаются произвольные, главное чтобы они были четко отличимы от обычных слова, к примеру можно указывать как %USERNAME%
, так и @USERNAME
. Главное что какие переменные мы указали в файле настроек, такие же мы и должны использовать в файлах шаблонов, для замены их на значения ключей в ходе работы утилиты.
Пример как должен выглядить файл settings.txt
:
displayName=%USERNAME% Title=%POSITION% Department=%DEPARTMENT% mail=%EMAIL% streetAddress=%ADDRESS% telephoneNumber=%TEL%
Работа утилиты заключается следующих шагах:
- Определяется текущий залогиненный пользователь в системе.
- Считываются настройки.
- Получаются все значения пользовательских аттрибутов из файла настроек.
- Формирование шаблонов подписи на основе полученных данных.
- Размещение шаблонов в пользовательском профиле (
C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Signatures
). - Создание в реестре (
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Common\MailSettings
) записей на использование сформированного шаблона.
Как это все распространять в доменной среде по пользователям !? Делается все это через Group Policy Object, GPO.
Размещаем утилиту с файлом настрое и шаблонами в — \\contoso.local\NETLOGON\OutlookSignature
Создаем групповую политику User Configuration
— Policies
— Administrative Templates
— System
— Logon
и в параметре Run these programs at user logon
указываем путь к запуску утилиты.
Нацеливаем политику на пользователей и все, далее при входе пользователя в систему будет формироваться подпись в Outlook.
Так же если запустить утилиту из cmd
, то можно посмотреть ее выполнение:
Скачать “outlook_signatureю.zip” outlook_signature.zip – Загружено 70 раз – 563 KB
UPD.
В случае если к примеру для кого либо пользователя необходимо отменить решение по подписи в Outlook, то необходимо руками зачищать в реестре два значения.
В HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Common\MailSettings
необходимо удалить два значения NewSignature
и ReplySignature
.
Перезапускаем Outlook. После этого пользователю будет разблокирована возможность создание желаемой подписи.
Либо можно просто запустить утилиту которая это сделает сама. Т.е. удали выше описанные ключи и перезапустит Outlook в случае если он был открыт. Утилита поможет если нужно будет массово отменить решение по автоматическим подписям.
Скачать утилиту — https://boosty.to/jakonda/posts/1c4303e0-81ec-48c9-a293-c519ee6dc913
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
Оставить ответ