Nieuwe huisstijl, nieuwe handtekening

Bij een nieuwe huisstijl hoort ook een nieuwe e-mail handtekening. Alleen: hoe krijg je die bij al je gebruikers?

Daar is ie dan: de nieuwe website. De website is onderdeel van een nieuwe huisstijl: Nieuw logo, ander briefpapier, nieuwe kleurtjes: er zijn talloze dingen die Daniëlle en Monique hebben geregeld. Een onderdeel van die nieuwe huisstijl is de e-mail ondertekening. We gebruiken Outlook als e-mail client, en dat biedt de mogelijkheid om automatisch een handtekening te plaatsen. Daar wordt ook veel gebruik van gemaakt. Nu was het eerst zo dat we een sjabloon rondstuurden, wat de gebruikers zelf moesten aanpassen. Dat ging eigenlijk best goed, maar alles moest nog wel even handmatig gecontroleerd worden. En een foutje is natuurlijk zo gemaakt. Daarom hadden we het plan opgevat om die handtekening automatisch aan te maken.

Active Directory
We hebben in onze handtekening een aantal dingen staan: de naam van de gebruiker, de functie van de gebruiker,en de telefoonnummers. Die gegevens hebben we bij de gebruikersaccounts in Active Directory geplaatst. Het voordeel daarvan is dat die gegevens dus overal beschikbaar zijn: Als je in Outlook kijkt, kun je daar dus gelijk het telefoonnummer terugvinden. En je hoeft ook geen moeite meer te doen om met Lync het goede nummer op te zoeken.

Handtekening maken
Nu is alles al een keer verzonnen, en ook dit is niet nieuw: we zullen echt niet het eerste bedrijf zijn wat de handtekening automatisch wil uitrollen. En dat klopt ook: Op het internet vonden we een Powershell (2.0) script, waarmee e.e.a. al geregeld was. Dat script hebben we aangepast naar onze eigen wensen.

We hebben een nieuwe handtekening in een Word document gemaakt. Je kunt dan redelijk precies bepalen waar wat moet komen te staan, en het werkt erg makkelijk: je kunt ook gewoon plaatjes e.d. gebruiken, en verschillende lettertypes- en groottes zijn ook geen probleem. In dat document hebben we drie dingen neergezet: Displayname, Title en MobilePhone. Email zou ook kunnen, maar die gebruiken we niet. Deze teksten worden vervangen voor de gegevens uit Active Directory, waarbij het e-mail adres direct als link wordt gemaakt.  MobilePhone wordt gebruikt om zowel het gewone telefoonnummer als het mobiele nummer weer te geven. Deze manier heeft als voordeel dat er geen lege regel ontstaat als er geen mobiel nummer is ingevuld in de Active Directory.

De bestanden en mappen
Op de domeincontroller hebben we in de NETLOGON share een nieuwe map aangemaakt: sig_files. Hier zit het mapje NieuweHandtekening2013 in, waar we het Word document wegschrijven als NieuweHandtekening2013.docx.  Het powershell script schrijven we weg als Set-OutlookSignature.ps1 in de sig_files map. Door nu het powershell script aan te roepen met het commando:

powershell -ExecutionPolicy RemoteSigned -command \\test.local\ netlogon\sig_files\set-outlooksignature.ps1 

wordt het Wordbestand verwerkt en als handtekening in Outlook gezet.

Door het nog een keer aan te roepen, wordt het ook direct geactiveerd.

Als er geen veranderingen zijn, wordt er ook niets uitgevoerd. Je kunt dit script dus gewoon in een loginscript plaatsen. Verandert bijvoorbeeld de functie van de medewerker, of krijgt deze een ander telefoonnummer, dan worden de veranderingen wel doorgevoerd. Dat is ook het geval als het Word bestand wordt aangepast. 

Het script
Het script is getest met Office 2007, 2010 en 2013. Als je de extensie aanpast naar doc (in plaats van docx), zou het ook moeten werken met Office 2003. Daarnaast is het getest met Windows XP (SP3), Windows 7 (SP1) en Windows 8. Het werkt zowel met Powershell 2.0 als met Powershell 3.0.

Onderaan de pagina kan het script gedownload worden.

Bronnen:
Versie 1.0
Versie 1.1

Changelog vanaf versie 1.2:

1.2 04-01-2013 - Modified by John van Poelgeest for Logic Vision B.V.
- Languageindependant: checks where signature has to be placed, instead of assuming microsoft\signatures directory
- Add phonenumber and mobile phone to signature. If Mobile phone is not available, only adds phonenumber
- Checks if DisplayName, Title, Email or Phonenumbers have changed.
- supports lastname, firstname format for displayname in Active Directory (for example: Poelgeest, John van), as well as firstname lastname (for example: John van Poelgeest)
- If keyword Email does not exist in sourcedocument, don't add e-mail address to signature
- If Outlook is not installed, quit script

1.3 24-01-2013 - Modified by John van Poelgeest
- If signaturepath does not exist, create it.
- If no outlookprofile is present, quit script
- Moved "Set Company Signatures". Will now only be applied if there are changes

1.4 02-01-2014 - Modified by John van Poelgeest
- Added some [void] commands, which speed up the process considerably (thanks to Iwan van de Wetering/Vollenhoven Olie)

1.5 26-06-2014 - Modfied by John van Poelgeest
- If the ZeroConfigExchange registryvalue is set, Outlook will be started to ensure a profile is created (if it does not already exists)
- If signature is changed, mail will be send to the user (using Outlook COMobjects)
- word.quit en outlook.quit did not really quit Word and Outlook. Now ReleaseComObjects is used to ensure applications are closed