Questions

Creating Office Outlook Signatures for multiple users

+
0 Votes
Locked

Creating Office Outlook Signatures for multiple users

chris.mcquaid
I am fairly new to the IT industry, and have been asked to configure Outlook signatures for all users (approximately 60 over three sites). This will include the individual's name, job title, telephone number etc., as well as the company logo.

I've researched this on the net, and although I've found some solutions (VB scripts and paid-for software), none seem to be working for me. It's almost to the point that it would be quicker to manually configure the signatures on all the machines!

I'm working with Windows Server 2003, Active Directory, MS Exchange server with clients running XP Pro.

Any help would be much appreciated!
  • +
    0 Votes
    Genera-nation

    Fire out some instructions that tell people to put their name & dep & tel information. Next get the paid-for software and append the address & logo to the mix!

    +
    0 Votes
    neilb@uk

    The thing that you have to be aware of is that the signature file location is held in the HKCU hive of the Registry so YOU can't run a script to change it for THEM as it's an Outlook property in THEIR profile. You have to put a suitable script where the user runs it. 'Startup' is good and have the script delete itself after running successfully is what I usually do.

    The file location is in the string value Signatures at HKCU\Software\Microsoft\Office\11.0\Outlook for Office 2003 (12.0 for 2007) and the default is Signatures. It needs to be created if it doesn't exist. The folder with the same name needs to be in %APPDATA%\Microsoft. The signature files need to be placed in there. If you just create an HTML one, the rtf and txt versions will be generated.

    Neil

    +
    0 Votes
    chris.mcquaid

    Thanks for the post Neil - it's given me a couple of ideas to work with.

    Is it possible to put updatable fields in the HTML signature files (i.e. for individual's names, telephone number etc), or am I asking too much?!!

    Thanks again,

    Chris

    +
    0 Votes
    neilb@uk

    was to create a profile for use as a template on my own Outlook and substitute the users name for my own by simply editing the text file within vbscript.

    Problem is, I script everything - because I script everything! We could have got the same result by mailing the users some simple instructions and a signature style for them to cut and paste. That's what we now do with new users once I tidied the existing users' profiles up to corporate standard.

    Neil

    +
    0 Votes
    chris.mcquaid

    Thanks to Neil for the idea.

    What I've ended up doing is using some vbscript I found in a website tutorial and altering it so that it queries Active Directory and then creates the relevant signature files automatically when run locally.

    Having made sure this works by testing it on my machine, I have run the script automatically across the network at users' logins. Now I am going to write another script to change the new signature everyone has to their defaut signature and hey presto!!

    The only problem I found was inserting an image file into the signature, but since it's my first attempt at using vb I don't think I did too badly!


    Thanks,

    Chris

    +
    0 Votes
    banjo

    Hi Chris,

    Sounds like a more graceful solution than what I was about to do. I was going to build the signatures and drop the sig file into the signature folder in the users profiles.
    Could you point me at the website that started you off with the scripting.

    Thanks,
    Regards,
    Banjo

    +
    0 Votes
    kirkj85

    Hi guys,

    Just thought I'd post up the vbscript I'm using as it may help a few people.

    It runs as a logon script and creates a signature from AD information by doing an LDAP lookup for the particular user. It also adds a slogan down the bottom and two pictures. At the end it also sets the created signature as the default.

    My next challenge is trying to figure out if I can get this signature to work in outlook web access as well.

    A lot of this is based off the following Microsoft tech article: http://www.microsoft.com/technet/technetmag/issues/2006/10/HeyScriptingGuy/default.aspx

    I'm not sure of the forum rules so let me know if I'm not supposed to post script here.

    On Error Resume Next

    Set objSysInfo = CreateObject("ADSystemInfo")

    strUser = objSysInfo.UserName
    Set objUser = GetObject("LDAP://" & strUser)

    strName = objUser.FullName
    strTitle = objUser.Title
    strDepartment = objUser.Department
    strPhone = objUser.telephoneNumber
    strMobile = objUser.mobile
    strFax = objUser.faxNumber
    strEmail = objUser.emailAddress
    strStreet = objUser.streetAddress

    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 = "Comic Sans MS"
    objSelection.Font.Size = "10"

    objSelection.Font.Bold = true
    objSelection.TypeText strName
    objSelection.TypeParagraph()
    objSelection.Font.Size = "9"
    objSelection.Font.Bold = false
    objSelection.TypeText strTitle
    objSelection.TypeParagraph()

    objSelection.TypeParagraph()
    objSelection.TypeText strStreet
    objSelection.TypeParagraph()

    objSelection.TypeParagraph()
    objSelection.TypeText "phone - " & strPhone
    objSelection.TypeParagraph()
    objSelection.TypeText "fax - " & strFax
    objSelection.TypeParagraph()
    objSelection.TypeText "mobile - " & strMobile
    objSelection.TypeParagraph()
    objSelection.TypeText "email - " & strEmail
    objSelection.TypeParagraph()
    objSelection.InlineShapes.AddPicture("J:\Signature\picture1.jpg")
    objSelection.InlineShapes.AddPicture("J:\Signature\picture2.jpg")
    objSelection.TypeParagraph()
    objSelection.TypeParagraph()
    objSelection.Font.Color = "000,000,255"
    objSelection.Font.Italic = true
    objSelection.Font.Size = "8"
    objSelection.TypeText "Slogan goes here"

    Set objSelection = objDoc.Range()

    objSignatureEntries.Add "AD Signature", objSelection
    objSignatureObject.NewMessageSignature = "AD Signature"
    objSignatureObject.ReplyMessageSignature = "AD Signature"

    objDoc.Saved = True
    objWord.Quit

  • +
    0 Votes
    Genera-nation

    Fire out some instructions that tell people to put their name & dep & tel information. Next get the paid-for software and append the address & logo to the mix!

    +
    0 Votes
    neilb@uk

    The thing that you have to be aware of is that the signature file location is held in the HKCU hive of the Registry so YOU can't run a script to change it for THEM as it's an Outlook property in THEIR profile. You have to put a suitable script where the user runs it. 'Startup' is good and have the script delete itself after running successfully is what I usually do.

    The file location is in the string value Signatures at HKCU\Software\Microsoft\Office\11.0\Outlook for Office 2003 (12.0 for 2007) and the default is Signatures. It needs to be created if it doesn't exist. The folder with the same name needs to be in %APPDATA%\Microsoft. The signature files need to be placed in there. If you just create an HTML one, the rtf and txt versions will be generated.

    Neil

    +
    0 Votes
    chris.mcquaid

    Thanks for the post Neil - it's given me a couple of ideas to work with.

    Is it possible to put updatable fields in the HTML signature files (i.e. for individual's names, telephone number etc), or am I asking too much?!!

    Thanks again,

    Chris

    +
    0 Votes
    neilb@uk

    was to create a profile for use as a template on my own Outlook and substitute the users name for my own by simply editing the text file within vbscript.

    Problem is, I script everything - because I script everything! We could have got the same result by mailing the users some simple instructions and a signature style for them to cut and paste. That's what we now do with new users once I tidied the existing users' profiles up to corporate standard.

    Neil

    +
    0 Votes
    chris.mcquaid

    Thanks to Neil for the idea.

    What I've ended up doing is using some vbscript I found in a website tutorial and altering it so that it queries Active Directory and then creates the relevant signature files automatically when run locally.

    Having made sure this works by testing it on my machine, I have run the script automatically across the network at users' logins. Now I am going to write another script to change the new signature everyone has to their defaut signature and hey presto!!

    The only problem I found was inserting an image file into the signature, but since it's my first attempt at using vb I don't think I did too badly!


    Thanks,

    Chris

    +
    0 Votes
    banjo

    Hi Chris,

    Sounds like a more graceful solution than what I was about to do. I was going to build the signatures and drop the sig file into the signature folder in the users profiles.
    Could you point me at the website that started you off with the scripting.

    Thanks,
    Regards,
    Banjo

    +
    0 Votes
    kirkj85

    Hi guys,

    Just thought I'd post up the vbscript I'm using as it may help a few people.

    It runs as a logon script and creates a signature from AD information by doing an LDAP lookup for the particular user. It also adds a slogan down the bottom and two pictures. At the end it also sets the created signature as the default.

    My next challenge is trying to figure out if I can get this signature to work in outlook web access as well.

    A lot of this is based off the following Microsoft tech article: http://www.microsoft.com/technet/technetmag/issues/2006/10/HeyScriptingGuy/default.aspx

    I'm not sure of the forum rules so let me know if I'm not supposed to post script here.

    On Error Resume Next

    Set objSysInfo = CreateObject("ADSystemInfo")

    strUser = objSysInfo.UserName
    Set objUser = GetObject("LDAP://" & strUser)

    strName = objUser.FullName
    strTitle = objUser.Title
    strDepartment = objUser.Department
    strPhone = objUser.telephoneNumber
    strMobile = objUser.mobile
    strFax = objUser.faxNumber
    strEmail = objUser.emailAddress
    strStreet = objUser.streetAddress

    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 = "Comic Sans MS"
    objSelection.Font.Size = "10"

    objSelection.Font.Bold = true
    objSelection.TypeText strName
    objSelection.TypeParagraph()
    objSelection.Font.Size = "9"
    objSelection.Font.Bold = false
    objSelection.TypeText strTitle
    objSelection.TypeParagraph()

    objSelection.TypeParagraph()
    objSelection.TypeText strStreet
    objSelection.TypeParagraph()

    objSelection.TypeParagraph()
    objSelection.TypeText "phone - " & strPhone
    objSelection.TypeParagraph()
    objSelection.TypeText "fax - " & strFax
    objSelection.TypeParagraph()
    objSelection.TypeText "mobile - " & strMobile
    objSelection.TypeParagraph()
    objSelection.TypeText "email - " & strEmail
    objSelection.TypeParagraph()
    objSelection.InlineShapes.AddPicture("J:\Signature\picture1.jpg")
    objSelection.InlineShapes.AddPicture("J:\Signature\picture2.jpg")
    objSelection.TypeParagraph()
    objSelection.TypeParagraph()
    objSelection.Font.Color = "000,000,255"
    objSelection.Font.Italic = true
    objSelection.Font.Size = "8"
    objSelection.TypeText "Slogan goes here"

    Set objSelection = objDoc.Range()

    objSignatureEntries.Add "AD Signature", objSelection
    objSignatureObject.NewMessageSignature = "AD Signature"
    objSignatureObject.ReplyMessageSignature = "AD Signature"

    objDoc.Saved = True
    objWord.Quit