среда, 5 октября 2016 г.

автоматическая подпись в Outlook 2010-2016

Скрипт vbs дали коллеги, который я допилил под нужды своей организации.

Небольшое пояснение, внутри отделов могут быть подразделения, 
подразделение заносится в extensionAttribute3 у пользователя.

Есть телефон автосекретарь(с возможностью переключения на внутренний номер сотрудника),
в скрипте он указан в виде +7 ХХХ 200-00-00
Телефон отдела +7 ХХХ 200-00-02
Вешаем скрипт в групповых политиках на логон

в итоге выглядит подпись вот так
---------------
С уважением,

Иван Иванович Горбунков
Системный инженер
Информационный центр
Компания «Рога и копыта»
Холдинг ЛТДТел.: +7 ХХХ 200-00-00
Тел.: +7 ХХХ 200-00-02, доб. 1313
КСТС: (8080) 1313
www.roga-kopyta.com  
On Error Resume Next
 Set objSysInfo = CreateObject("ADSystemInfo")
 strUser = objSysInfo.UserName
 Set objUser = GetObject("LDAP://" & strUser)
 strRegard = "С уважением,"
 strDivision = "Холдинг ЛТД"

 strName = objUser.Name 'FullName  'Получаем полное имя
 strName = Replace(strName,"CN=","")
 a = Split(strName)
 strName = a(1)+" "+a(2)+" "+a(0)
 strTitle = objUser.Title  'Должность
 strAttr3 = objUser.extensionAttribute3 'Атрибут3 для записи подразделения в отделе(если есть)
 
 strDepartment = objUser.Department 'Отдел
 strCompany = objUser.Company  'Компания
 tempExt = objUser.telephoneNumber 'Номер телефона КСТС
 strOU=objUser.DistinguishedName 'OU

 a = Split(tempExt)   'Дальше процедура выделения из корпоративного номера добавочного и обработка ошибок
 if a(0) = "" Then        'Нет пробела в номере
   a0=tempExt
   a1=""
 else
   a0=a(0)
   a1=a(1)
 end if 
            
 b = left(tempExt,3)
' wscript.echo "tempExt=" & tempExt & ",   left 3 (b)=" & b 
' wscript.echo " a0= " & a0 & ", a1= " & a1

 if b = "(80" Then
   if (a1<>"") Then
     strKSTS = tempExt   'Номер правильно делится на добавочный и корпоративный
     strExtention = a1   'Добавочный номер телефона
'     wscript.echo "1. strKSTS=" & strKSTS & ", strExtention=" & strExtention
   Else                                 'Номер не делится, пишем и в добавочный и в корпоративный
     strKSTS = tempExt
     strExtention = a0   'Добавочный номер телефона
'     wscript.echo "2. strKSTS=" & strKSTS & ", strExtention=" & strExtention
   end if
 Else        'Номер только добавочный, корпоративного нет
   strKSTS = ""
   strExtention = a0   'Добавочный номер телефона
'   wscript.echo "3. strKSTS=" & strKSTS & ", strExtention=" & strExtention
 end if

 iBoss=InStr(strOU,",OU=Руководство,") 'Определяем, находится ли сотрудник в OU Руководство
' wscript.echo  strOU & ",   вхождение подстроки= " & iBoss

 if iBoss<>0 Then
   strExtention=""                      'Для OU Руководство убираем добавочный номер
 end if

 strPhone  = objUser.otherTelephone 'Городской номер телефона
 strMobile = objUser.mobile  'Сотовый
 strWeb = objuser.wWWHomePage  'WEB страница
 'strLogo = "\\domain.corp\NETLOGON\company-logo.gif" 'Логотип организации (опционально)
 
'--------------------------------------------------------------------------
'Русская подпись в формате Word (должен быть установлен на рабочей станции)
'--------------------------------------------------------------------------
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"
 objSelection.Font.Bold = false
 objSelection.ParagraphFormat.Space1

'--Вставка текста с переводом строки 
'--"С уважением,"
 objSelection.TypeText strRegard
 objSelection.TypeText CHR(11)
'--Имя пользователя
 objSelection.Font.Bold = true
 objSelection.TypeText strName
 objSelection.TypeText CHR(11)
 objSelection.Font.Bold = false
 '--Должность
 objSelection.TypeText CHR(11)
 objSelection.TypeText strTitle
 objSelection.TypeText CHR(11)
'--Подразделение отдела
 if strAttr3 <> "" Then
  objSelection.TypeText strAttr3
 end if
'--Отдел-Верхний уровень, если не начальник
 if strDepartment <> "" THEN
   objSelection.TypeText strDepartment
   objSelection.TypeText CHR(11)
 end if
'--Компания
 objSelection.TypeText strCompany
 objSelection.TypeText CHR(11)
'--Дивизион
 objSelection.Font.Bold = true
 objSelection.TypeText strDivision
 objSelection.TypeText CHR(11)
 objSelection.Font.Bold = false

'--Телефон
 if iBoss=0 Then
   objSelection.TypeText "Тел.: " & strPhone
   objSelection.TypeText CHR(11)
   objSelection.TypeText "Тел.: " & "+7 ХХХ 200-00-00" & ", доб. " & strExtention
 else
   objSelection.TypeText "Тел.: " & strPhone  'Для OU Руководство добавочный не пишем
 end if
 objSelection.TypeText CHR(11)

'--Корпоративный номер, если есть
 if strKSTS <> "" Then
  objSelection.TypeText "КСТС: " & strKSTS
  objSelection.TypeText CHR(11)
 end if

'--Мобильный, если есть
 if strMobile <> "" THEN
  objSelection.TypeText "Моб.: " & strMobile
  objSelection.TypeText CHR(11)
 end if
 '--Сайт
 objSelection.Hyperlinks.Add objSelection.Range, strWeb, "", "", strWeb
 'objSelection.TypeText CHR(11)
 '--Логотип
 'objSelection.InlineShapes.AddPicture(strLogo)
 
 Set objSelection = objDoc.Range()
 objSignatureEntries.Add "VF Signature", objSelection
 objSignatureObject.NewMessageSignature = "Corp Signature"
 objSignatureObject.ReplyMessageSignature = "Corp Signature"
 
 objDoc.Saved = True
 objDoc.Close
 objWord.Quit
 

Для тех у кого не применилась подпись автоматически назначаем через реестр

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Outlook\Setup]
"First-Run"=-

[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\MailSettings]
"NewSignature"="Corp Signature"
"ReplySignature"="Corp Signature"

Комментариев нет:

Отправить комментарий