[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1019
  • Last Modified:

Central control of outlook signatures

At the moment, each user is set up with a signature on their own PC.
Layout is like this:
Phone Number
Standard company blurb

The name and phone number change per user, while the blurb stays the same.
Every time a new pc arrives, the signature for all users on that pc must be setup fresh. Is there a way to store the signatures centrally somewhere, so that it loads based on the user profile?


1 Solution
Nothing that you can do with Outlook.
What I have done in the past is use a tool such as Exclaimer. This can build the signatures on the fly based on information stored in the domain.


If your question has been answered, please remember to accept the answer and close the question.
The best way to do it is to use GPO to run a VBScript that will populate each of the signature files for Plain/Rich Text/HTML from the details stored about each user in Active Directory. It can then copy the files to the PC/Laptop on login. It will require you to select the signature within the Options in Outlook initially however after that you can change the users details in Active Directory and their signature will change the next time they log in.
There are also third party (expensive) options for doing this on the mail server.

Exchange do not support a centralised signature/disclaimer. You need to do it with VB code, or if you are not familiar with VB you can purchase third party product to fullfil your objective.

Check this link which gives you a list of third party products that embedd a centrailised disclaimer in Exchange.
jdhackettAuthor Commented:
Thanks guys.
gowanse - by GPO, I take it you mean Group Policy?
I'm familiar with VB - is there a sample article anywhere that shows how this is done?
Yes I did mean Group Policy
Below is an example of a VBScript that I have used in the past it copys an image which is a logo for the company. It also pulls the relevant information out of Active Directory as well.

There is also some interesting information at the below link.

Dim syspath, scriptpath, path, wshell, fso, fil, fol

Set fso    = Wscript.createobject ("Scripting.FileSystemObject")
Set wshell = Wscript.createobject ("WScript.Shell")
set fil    = fso.getfile(wscript.scriptFullName)
set fol    = fil.parentfolder : scriptpath = fol.path
syspath    = wshell.ExpandEnvironmentStrings("%Systemroot%")

'####  COPY Image File for Signature ##############

path = scriptpath & "\userUpdates\image\image.jpg"
wshell.Run "xcopy.exe " & path &" "&syspath&" /y"

doSignatures    ' Outlook Mail Signatures

Private Sub doSignatures

Const ForReading = 1,ForWriting = 2,ForAppending = 8
Dim cUser,cJob,cTel,cMob,cFax,tfil,fPath,ext(3),s,i,sysinfo,User

set fol=fso.getfolder(sigpath) : set fol = fol.parentfolder
sigpath=fol.path &"\Application Data\Microsoft\Signatures"
set fol=nothing
If fso.folderexists(sigpath) = false then fso.createfolder(sigpath)

Set sysinfo = CreateObject("ADSystemInfo")
Set User= GetObject("LDAP://"& sysinfo.username)
cUser = User.FirstName &" "& User.LastName
cjob  = user.title : cTel  = user.telephoneNumber : cMob  = user.mobile
cfax  = user.faxnumber : cmail = user.mail
If cMob = "" then cMob = " n/a"
If cFax = "" then cFax = "+44 (0)23 9249 8853"

ext(1)="txt" : ext(2)="rtf" : ext(3)="htm"

For i=1 to 3
path=scriptpath &"\UserUpdates\glasshouse\GlassHouse."& ext(i)
  if fso.fileexists(path) = True then
    fso.copyfile path, "c:\image.tmp"
    set tfil = fso.opentextfile("c:\image."& ext(i), ForAppending, true)
    set fil  = fso.opentextfile("c:\image.tmp", ForReading)
     while not fil.atendofstream
      s=replace(s,"szUserName",cUser) : s=replace(s,"szUserTitle",cJob)
      s=replace(s,"szUserTel",cTel) : s=replace(s,"szMobTel",cMob)
 s=replace (s,"szFax",cFax) : s=replace (s,"szmail",cmail)
      tfil.writeline s
    fil.close:tfil.close:fso.deletefile "c:\image.tmp"
   end if
  path=sigpath &"\SignatureName."& ext(i)
  if fso.fileexists(path) then fso.deletefile path  
  fso.movefile "c:\image." & ext(i), path

End Sub

Featured Post

Get free NFR key for Veeam Availability Suite 9.5

Veeam is happy to provide a free NFR license (1 year, 2 sockets) to all certified IT Pros. The license allows for the non-production use of Veeam Availability Suite v9.5 in your home lab, without any feature limitations. It works for both VMware and Hyper-V environments

Tackle projects and never again get stuck behind a technical roadblock.
Join Now