Доставшийся мне в наследство домен имел очень много лишнего и мало чего полезного. Один из не сделанных на мой взгляд БП — это автоподпись в Outlook у пользователей домена или как в аутлуке настроить подпись.
Естественно: две недели согласования картинок, потом текста, шрифтов и длины интервалов, подготовка Active Directory в плане наполнения атрибутами, телефоны, мэйлы, сайты и т.д.
В итоге мы имеем задачу:
1. Схема самой автоподписи, наглядное исполнение.
2. Шрифты для автоподписи.
3. Пять организаций, на основании которых у сотрудников разная подпись.
4. Атрибуты: не у всех сотрудников,например, есть мобильники, следовательно, будем использовать условие «если».
В заключении: формирующееся Автоподпись в Outlook у пользователей домена по атрибутам.
Остальное по ходу работ.
Нам потребуется: Active Directory с политиками, картинка для каждой организации, атрибут Active Directory и задания для групп пользователей.
Да, самое главное, делать будем для домена на базе Windows server 2003. Так как это сложнее, причина ? Он туповат на понимание условий и атрибутов.
Расскажу про его туповатость, и как это пришлось обходить.
Логично было бы создать группу пользователей на основании наличия атрибута «компания», например: «контора-1», собрать их в группу пользователей «подпись-контора-1» и предоставить только этой группе доступ к политике, в который наша подпись бы назначалась. Но у 2003 нет условия для атрибута «компания», он его не знает для сортировки, но знает атрибут «комната» room.
Значит делаем различия, компания «контора-1» соответствует комнате 1 и т.д.
Согласен, это не совсем удобно в плане администрирования, но зато это работает. В случае с доменом на Windows server 2008, можно использовать только атрибут «компания» и не дублировать комнату .
Скрипт автоподписи по атрибутам Active Directory
On Error Resume Next
Set objSysInfo = CreateObject(«ADSystemInfo»)
strUser = objSysInfo.UserName
Set objUser = GetObject(«LDAP://» & strUser)strZpov = «С уважением,»
strDev = «________________________________________________________________________»
strPostIndex = ObjUser.postalCode
strName = objUser.FullName
strTitle = objUser.Title
strDepartment = objUser.Department
strCompany = objUser.Company
strPhone = objUser.telephoneNumber
strweb = objuser.wWWHomePage
strstreet = objuser.streetAddress
strfax = objuser.facsimileTelephoneNumber
strIntPhone = objuser.mobile
strEmail = objuser.mail
strotdel = objUser.extensionAttribute3
strLogo = «\\путь до вашего рисунка в сети\logo-контора-1.jpg»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
Set objRange = objDoc.Range()objDoc.Tables.Add objRange,2,2
Set objTable = objDoc.Tables(1)
objTable.Rows(1).select
objSelection.Cells.Merge
objTable.Cell(2, 1).select
objTable.Cell(2, 1).Width = 70
objSelection.TypeText CHR(11)
objTable.Cell(2, 1).Text = objSelection.InlineShapes.AddPicture(strLogo)
objTable.Cell(2, 2).select
objTable.Cell(2, 2).Width = 400
objselection.font.color = RGB(11, 32, 77)
objSelection.TypeText CHR(11)
»'
objSelection.ParagraphFormat.Space1
objselection.font.color = RGB(11, 32, 77)
objSelection.Font.Name = «Arial Narrow»
objSelection.Font.Size = «11»
objSelection.TypeText strZpov
objSelection.TypeText CHR(11)
objSelection.TypeText strName
objSelection.TypeText CHR(11)
objSelection.TypeText strTitle
objSelection.TypeText CHR(11)
if (strDepartment<>»») then objSelection.TypeText strDepartment
if (strDepartment<>»») then objSelection.TypeText CHR(11)
if (strotdel<>»») then objSelection.TypeText strotdel
if (strotdel<>»») then objSelection.TypeText CHR(11)
objSelection.TypeText strCompany
objSelection.TypeText CHR(11)
objSelection.TypeText «Тел. » & strPhone
if (strintPhone<>»») then objSelection.TypeText CHR(11) & «Моб. » & strintPhone
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.font.color = RGB(0, 0, 0)
objSelection.TypeText strPostIndex & strgorod & strstreet
»'
Set objSelection = objDoc.Range()
objSignatureEntries.Add «AD Signature», objSelection
objSignatureObject.NewMessageSignature = «AD Signature»
objSignatureObject.ReplyMessageSignature = «AD Signature»objDoc.Saved = True
objDoc.Close
objWord.Quit
Разберём, что за что отвечает в данном скрипте.
Блок, который присваивает атрибуты соответствия Active Directory:
On Error Resume Next
Set objSysInfo = CreateObject(«ADSystemInfo»)
strUser = objSysInfo.UserName
Set objUser = GetObject(«LDAP://» & strUser)
strZpov = «С уважением,»
strDev = «____________________________________________________________________»
strPostIndex = ObjUser.postalCode
strName = objUser.FullName
strTitle = objUser.Title
strDepartment = objUser.Department
strCompany = objUser.Company
strPhone = objUser.telephoneNumber
strweb = objuser.wWWHomePage
strstreet = objuser.streetAddress
strfax = objuser.facsimileTelephoneNumber
strIntPhone = objuser.mobile
strEmail = objuser.mail
strotdel = objUser.extensionAttribute3
strLogo = «\\путь до вашего рисунка в сети\logo-контора-1.jpg»
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
Set objRange = objDoc.Range()
objDoc.Tables.Add objRange,2,2
Set objTable = objDoc.Tables(1)
objTable.Rows(1).select
objSelection.Cells.Merge
Блок, создание таблицы, в которой два столбца и одна строка , цвет текста и его размер:
objTable.Cell(2, 1).select
objTable.Cell(2, 1).Width = 70
objSelection.TypeText CHR(11)
objTable.Cell(2, 1).Text = objSelection.InlineShapes.AddPicture(strLogo)
objTable.Cell(2, 2).select
objTable.Cell(2, 2).Width = 400
objselection.font.color = RGB(11, 32, 77)
objSelection.TypeText CHR(11)
Блок, который выводит информацию из блока соответствий:
objSelection.ParagraphFormat.Space1
objselection.font.color = RGB(11, 32, 77)
objSelection.Font.Name = «Arial Narrow»
objSelection.Font.Size = «11»
objSelection.TypeText strZpov
objSelection.TypeText CHR(11)
objSelection.TypeText strName
objSelection.TypeText CHR(11)
objSelection.TypeText strTitle
objSelection.TypeText CHR(11)
if (strDepartment<>»») then objSelection.TypeText strDepartment
if (strDepartment<>»») then objSelection.TypeText CHR(11)
if (strotdel<>»») then objSelection.TypeText strotdel
if (strotdel<>»») then objSelection.TypeText CHR(11)
objSelection.TypeText strCompany
objSelection.TypeText CHR(11)
objSelection.TypeText «Тел. » & strPhone
if (strintPhone<>»») then objSelection.TypeText CHR(11) & «Моб. » & strintPhone
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.font.color = RGB(0, 0, 0)
objSelection.TypeText strPostIndex & strgorod & strstreet
Блок с условием, как назвать подпись, когда выводить данную подпись:
Set objSelection = objDoc.Range()
objSignatureEntries.Add «AD Signature», objSelection
objSignatureObject.NewMessageSignature = «AD Signature»
objSignatureObject.ReplyMessageSignature = «AD Signature»
objDoc.Saved = True
objDoc.Close
objWord.Quit
Скрипт готов, сохраняем его как: имя_файла.VBS, осталось сделать их 5 штук. Назвать по-разному и в каждом поменять логотип — «картинку» конторы.
Далее, создаём новую групповую политику для каждого скрипта и ставим данный скрипт в автозапуск при входе в систему. Получаем 5 групповых политик, каждая для отдельной конторы, со своим путём для рисунка (логотипа).
Сам созданный скрипт вы можете проверит на своём ПК, запуская его перед запуском Outlook.
Если вы добились нужного расположения, цвета шрифта и логотипа, делайте групповые политики.
Отбор по атрибутам Active Directory в группы пользователей,
а уже сами групповые политики по конторам, определим именно для наших групп.
Создаём групп по атрибутам, тут ещё один камень. Если мы создаём группу, а она у нас динамическая, то есть сотрудник может быть переведён из одной конторы в другую? Я сделал две группы. Одна группа outl-контора1, к данной группе привязана групповая политика.
Вторая группа, podpis контора-1, в неё я добавляю пользователей по атрибуту «комната», каждое утро, по обычному заданию. Что я делаю заданиями каждое утро и для чего? Удаляю ранее созданные группы пользователей: podpis контора1, podpis контора2, podpis контора3, podpis контора4, podpis контора5. Создаю группу пользователей: podpis контора1, podpis контора2, podpis контора3, podpis контора4, podpis контора5. Добавляю в эти группы пользователей по атрибуту «комната», соответственно, если атрибут 1, то в группу podpis контора1 и т.д. Добавляю группы podpis контора1 в группу outl-контора1, podpis контора2 в группу outl-контора2 и т.д.
Что получается в итоге: группам не надо постоянно присваивать групповые политики, пользователи постоянно обновляются в группах при смене комнаты, работает автоматически.
Для создания Автоподпись в Outlook у пользователей домена потребуется добавление заданий windows. Так как команды в наших заданиях на уровне работы сервера, их необходимо сохранять в doc кодировке.
Задания для формирования групп пользователей Active Directory .
Задание на удаление групп:
delgroup.bat
dsrm «сп=podpis контора1, OU=mail podpis, OU=users, dc=Domen, dc=local» -noprompt
dsrm «сп=podpis контора2, OU=mail podpis, OU=users, dc=Domen, dc=local» -noprompt
dsrm «сп=podpis контора3, OU=mail podpis, OU=users, dc=Domen, dc=local» -noprompt
dsrm «сп=podpis контора4, OU=mail podpis, OU=users, dc=Domen, dc=local «-noprompt
dsrm» сп=podpis контора5, OU=mail podpis, OU=users, dc=Domen, dc=local «-noprompt
Задание на создание групп:
creatgroup.bat
dsadd group «сп=podpis контора1, OU=mail podpis, OU=users, dc=Domen, dc=local»
dsadd group «сп=podpis контора2, OU=mail podpis, OU=users, dc=Domen, dc=local»
dsadd group «сп=podpis контора3, OU=mail podpis, OU=users, dc=Domen, dc=local»
dsadd group «сп=podpis контора4, OU=mail podpis, OU=users, dc=Domen, dc=local»
dsadd group «сп=podpis контора5, OU=mail podpis, OU=users, dc=Domen, dc=local»
Задание на добавление пользователей по атрибуты «комната»
adduser.bat
dsquery * -filter «(physicalDeliveryOfficeName=1)» | dsmod group «сп=podpis контора1, OU=mail podpis, OU=users, dc=Domen, dc=local» -chmbr
dsquery * -filter «(physicalDeliveryOfficeName=2)» | dsmod group «сп=podpis контора2, OU=mail podpis, OU=users, dc=Domen, dc=local» -addmbr
dsquery * -filter «(physicalDeliveryOfficeName=3)» | dsmod group «сп=podpis контора3, OU=mail podpis, OU=users, dc=Domen, dc=local» -addmbr
dsquery * -filter «(physicalDeliveryOfficeName=4)» | dsmod group «сп=podpis контора4, OU=mail podpis, OU=users, dc=Domen, dc=local» -addmbr
dsquery * -filter «(physicalDeliveryOfficeName=5)» | dsmod group «сп=podpis контора5, OU=mail podpis, OU=users, dc=Domen, dc=local» -addmbr
То есть , все пользователи домена, имеющие атрибут «комната» 1, будут добавлены в группу podpis контора1.
Остаётся добавить группы в группы.
addgroup.bat
dsmod group «cn=outl-контора1,OU=mail podpis, OU=users, dc=Domen, dc=local» -addmbr «сп=podpis контора1, OU=mail podpis, OU=users, dc=Domen, dc=local»
dsmod group «cn=outl-контора2,OU=mail podpis, OU=users, dc=Domen, dc=local» -addmbr «сп=podpis контора2, OU=mail podpis, OU=users, dc=Domen, dc=local»
dsmod group «cn=outl-контора4,OU=mail podpis, OU=users, dc=Domen, dc=local» -addmbr «сп=podpis контора3, OU=mail podpis, OU=users, dc=Domen, dc=local»
dsmod group «cn=outl-контора5,OU=mail podpis, OU=users, dc=Domen, dc=local» -addmbr «сп=podpis контора4, OU=mail podpis, OU=users, dc=Domen, dc=local»
dsmod group «cn=outl-контора6,OU=mail podpis, OU=users, dc=Domen, dc=local» -addmbr «сп=podpis контора5, OU=mail podpis, OU=users, dc=Domen, dc=local
Автоподпись в Outlook у пользователей домена для разных компаний, в пределах работы контроллера домена под управлением windows server 2003 создать можно, и не так уж и сложно.
Подведём итоги.
Для осуществления данной задачи по добавлению Автоподпись в Outlook у пользователей домена, потребовалось:
Атрибут «комната» , на основании его отобрали пользователей в соответствующие группы, создали скрипты, которые добавляют подпись с разными логотипами, назначили им отдельные групповые политики, сами групповые политики назначили на группы, и в итоге связали группы групповых политик и группы отсортированных нами пользователей.
Нет нерешаемых задач, есть тупое копирование кода.
Сделанная таким способом Автоподпись в Outlook у пользователей домена отлично работает на всех версия Outlook.
Свежие комментарии