Outlook signature deployment

írta: zone, 6 éve

Azt a feladatot kaptam, oldjam meg, hogy minden felhasználónak egységes aláírása legyen Outlookban. Természetesen léteznek fizetős megoldások, mint a CodeTwo és Exclaimer, de a cél az ingyenesség volt.
Az adatokat az AD fiókokból nyeri ki. Nem találtam sehol normális leírást, így több helyről összeszedett részletekből állítottam össze a megoldásom.
És ha már egyszer működik, gondoltam közzéteszem, hátha más is hasznát veszi.

Az aláírás felépítése:

Üdvözlet

Név
Beosztás

Tel.: 000000 (színes pötty) Mobile: 000000 (színes pötty) Em@il.com
Logo
(kép, weboldal hivatkozással)
Follow us on: Linkedin, Twitter, YouTube (képek, hivatkozással)

Első lépésként kell egy .vbs script, ami generál egy htm fájlt az aláíráshoz, a főbb cserélhető részek ***-al vannak jelölve. Ez egy login scrip lesz (User Configuration > Policies > Windows Settings > Scripts > Logon), de természetesen ajánlott lokálisan tesztelni.

'Signature in Outlook



'Create objects

Set WshShell = WScript.CreateObject("WScript.Shell")

Set FileSysObj = CreateObject("Scripting.FileSystemObject")

Set objADSysInfo = CreateObject("ADSystemInfo")

Set UserObj = GetObject("LDAP://" & objADSysInfo.UserName)

strAppData = WshShell.ExpandEnvironmentStrings("%APPDATA%")



SigFolder = StrAppData & "\Microsoft\Signatures\"

strQuteChr = chr(34)

strDotChr = chr(149)

SigFile = SigFolder & "***signaturename***" & ".htm"



'Check existence of signature folder

if not FileSysObj.FolderExists(SigFolder) then

FileSysObj.CreateFolder(SigFolder)

end if

if FileSysObj.FileExists(SigFile) then

Set objFile = FileSysObj.GetFile(SigFile)

datSigAlt = objFile.DateLastModified

intTimeDiff = DateDiff("n", datSigAlt, UserObj.whenChanged)

if intTimeDiff < 0 then wscript.Quit

end if



Set CreateSigFile = FileSysObj.CreateTextFile (SigFile, 8, False)



CreateSigFile.WriteLine "<!DOCTYPE HTML PUBLIC " & """-//W3C//DTD HTML 4.0 Transitional//EN""" & ">"

CreateSigFile.WriteLine "<HTML><HEAD><TITLE>Outlook Signature</TITLE>"

CreateSigFile.WriteLine "<META http-equiv=Content-Type content=" & """text/html; charset=windows-1252""" & ">"

CreateSigFile.WriteLine "<META content=" & """MSHTML 6.00.2900.3059""" & " name=GENERATOR></HEAD>"

CreateSigFile.WriteLine "<BODY>"



'Greeting

CreateSigFile.WriteLine "<DIV align=left><FONT face=Verdana size=2 color=#000000>" & "***greeting***" & "</FONT></DIV>"

'Add blank line

CreateSigFile.WriteLine "<DIV align=left><FONT face=Verdana size=2></FONT><br></DIV>"



'Get active directory data

'Username

CreateSigFile.WriteLine "<DIV align=left><FONT face=Verdana size=2 color=#000000><strong>" & UserObj.FirstName & " " & UserObj.LastName & "</strong></FONT></DIV>"

'Title

CreateSigFile.WriteLine "<DIV align=left><FONT face=Verdana size=2 color=#000000>" & UserObj.title & "</FONT></DIV>"

'Add blank line

CreateSigFile.WriteLine "<DIV align=left><FONT face=Verdana size=2></FONT><br></DIV>"

'Phone, email

CreateSigFile.WriteLine "<DIV align=left><FONT face=Verdana size=2 color=#000000>" & "Tel.: " & UserObj.telephoneNumber & "</FONT><FONT face=Verdana size=2 color=#808080><strong>" & " " & strDotChr & " " & "</strong></FONT>" & "<FONT face=Verdana size=2 color=#000000>" & "Mobile: " & UserObj.Mobile & "</FONT><FONT face=Verdana size=2 color=#808080><strong>" & " " & strDotChr & " " & "</strong>" & "<FONT face=Verdana size=2 color=#000000>" & UserObj.mail & "</FONT></DIV>"

'Logo with link

CreateSigFile.WriteLine "<a href=***http://yourwebsite***><img src=***signaturename***_files\***image1***.jpg></a>"

'Add blank line

CreateSigFile.WriteLine "<DIV align=left><FONT face=Verdana size=2></FONT><br></DIV>"

'Twitter Linkedin Youtube button

CreateSigFile.WriteLine "<DIV align=left><FONT face=Verdana color=#808080 size=2>" & "Follow us on: " & "<a href=https://twitter.com/***yourtwitter***><img src=***signaturename***_files\***image2***.jpg></a>" & "  " & "<FONT face=Verdana color=#000000 size=2>" & "<a href=https://www.linkedin.com/company/***yourlinkedin***><img src=***signaturename***_files\***image3***.jpg></a>" & "  " & "<FONT face=Verdana color=#000000 size=2>" & "<a href=https://www.youtube.com/channel/***youryoutube***><img src=***signaturename***_files\***image4***.jpg></a>" & "</FONT></DIV>"



CreateSigFile.WriteLine "</BODY></HTML>"

CreateSigFile.Close

A következő lépés egy .bat fájl, ami egy hálózati meghajtóról, vagy akár a DC-ről átmásolja a szükséges képeket. Ez is logon script lesz. Fontos, hogy a mappa "_files"-ra végződjön.

echo d | xcopy "\\***networkpath***\***signaturename***_files" "%AppData%\Microsoft\Signatures\***signaturename***_files\" /Y

Ezt a bat és a vbs fájlt a \\***yourdomain***\NETLOGON\ mappába célszerű elhelyezni.

Végül négy új registry elemet kell létrehozni (User Configuration > Preferences > Windows Settings > Registry > New Registry Item). Office 2016 szerepel a példában, értelemszerűen régebbi Outlook esetén nem 16.0 lesz az útvonal. Ja és itt is figyelni kell, hogy ugyanaz legyen az aláírás elnevezése, mint korábban. A negyedik elem útvonala más, mint az első háromé.

Action: Create
Hive: HKEY_CURRENT_USER

Path: Software\Microsoft\Office\16.0\Common\MailSettings\
Name: NewSignature
Type: REG_SZ
Data: ***signaturename***

Name: ReplySignature
Type: REG_SZ
Data: ***signaturename***

Name: DisableSignature
Type: REG_DWORD
Data: 0
Base: Decimal

Path: Software\Microsoft\Office\16.0\Outlook\Options\Mail

Name: Send Pictures With Document
Type: REG_DWORD
Data: 1
Base: Decimal

Ennyi.