Soms kan het wel eens handig zijn om dingetjes te automatiseren. Een van die dingetjes is de handtekening in Outlook. Opgenomen als een loginscript, zorgt het ervoor dat iedereen dezelfde handtekening krijgt. Uiteraard moet je er dan ook voor zorgen dat de gegevens van de gebruiker er goed in komen te staan. En daarmee komt onderstaand script in beeld
Dit script (wat ik niet zelf heb geschreven, maar wel de nodige aanpassingen aan heb gedaan) neemt een Word document (een docx bestand, in dit geval), en maakt daar een handtekening van. Op de plaatsen waar Displayname, Email, Title en MobilePhone staan, worden deze teksten vervangen door gegevens uit Active Directory (Display Name, E-mail, Job Title, Telephone Number en Mobile).
Als er veranderingen zijn (het Word document wordt aangepast, iemand krijgt een ander telefoonnummer of een andere functie, bijvoorbeeld), dan hoeft alleen dit script uitgevoerd te worden om de veranderingen door te zetten.
Je moet de volgende dingen doen om het draaiend te krijgen:
-
Maak een worddocument aan. Hierin kun je gewoon alle opmaak meenemen die je wilt. Doe niet te gek: Het moet uiteindelijk geconverteerd worden naar HTML, en dat heeft zijn beperkingen. Je kunt wel gewoon lettertypes, kleuren en plaatjes erin zetten. Noem het document (bijvoorbeeld) NieuweHandtekening2013.docx
-
Maak in de netlogon share op de Domaincontroller een nieuwe share aan met de naam sig_files.
-
Kopieer het worddocument naar de zojuist gemaakte map op de domaincontroller
-
Kopieer onderstaand script naar het bestand Set-OutlookSignature.ps1. Het maakt niet uit waar deze staat
-
Pas de Custom Variables aan. $companyname moet hetzelfde zijn als de naam van het document (in dit geval dus NieuweHandtekening2013). $ForceSignatureNew geeft aan of er altijd een nieuwe handtekening moet worden gemaakt bij een nieuwe e-mail, $ForceSignatureReply bepaald of er een handtekening moet worden gemaakt als er op een mail geantwoord wordt. $domainname is je domeinnaam, waarmee je ook bijvoorbeeld de logonshare (maar ook de DFS) kunt bereiken.
Als dat allemaal is gedaan, kun je het powershell script 2x achter elkaar starten, en wordt de handtekening direct in Outlook geplaatst.
Het script kan gedownload worden via de website van mijn werkgever (op twee plekken bijhouden is een beetje gekkenwerk, nietwaar?)
###########################################################################"
#
# NAME: Set-OutlookSignature.ps1
#
# AUTHOR: Jan Egil Ring
# Modifications by Darren Kattan, John van Poelgeest
#
# COMMENT: Script to create an Outlook signature based on user information from Active Directory.
# Adjust the variables in the "Custom variables"-section
# Create an Outlook-signature from Microsoft Word (logo, fonts etc) and copy this signature to \\domain\NETLOGON\sig_files\$CompanyName\$CompanyName.docx
# This script supports the following keywords:
# DisplayName
# Title
# Email
# MobilePhone
#
# See the following blog-posts for more information:
# http://blog.powershell.no/2010/01/09/outlook-signature-based-on-user-information-from-active-directory
# http://www.immense.net/deploying-unified-email-signature-template-outlook
#
# Tested on Office 2007, 2010 and 2013
#
# You have a royalty-free right to use, modify, reproduce, and
# distribute this script file in any way you find useful, provided that
# you agree that the creator, owner above has no warranty, obligations,
# or liability for such use.
#
# VERSION HISTORY:
# 1.0 09.01.2010 – Initial release
# 1.1 11.09.2010 – Modified by Darren Kattan
# - Removed bookmarks. Now uses simple find and replace for DisplayName, Title and Email.
# - Email address is generated as a link
# - Signature is generated from a single .docx file
# - Removed version numbers for script to run. Script runs at boot up when it sees a change in the "Date Modified" property of your signature template.
# 1.2 04-01-2013 - Modified by John van Poelgeest for Logic Vision B.V.
# - Places signature in correct directory, even with other languages besides english
# - 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 only be applied if there are changes
# - Start set-outlookstationary from same directory
# 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 - Modified 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
###########################################################################"