Standardising Outlook Fonts using Group Policy Preferences

Many businesses like to market themselves with a unified brand across all of their materials, such as posters, adverts, emails, letters etc. Often this will mean a company will enforce their employees to use a certain font (type size and colour) in all their programs e.g. Word, Outlook etc.

When I was asked to do this I turned to my trusty Group Policy Management Console to find the policy relating to default fonts. For some reason, Microsoft feel it is unnecessary to provide this. I think it’s because (unknown to me until now) Group Policies cannot modify or create the necessary hexadecimal binary values that are used to specify fonts in Outlook. This took me on a journey of updating my skills with Group Policy Preferences (GPP) and admx files to allow me to achieve this, albeit in a limited fashion. This goal requires two different tools within Group Policy. To force the user to use a particular font we will add some new registry preferences. To disable Stationery (outlook XP-2007) and Themes (outlook 2007) we can create custom administrative templates.

Preferences

Fig 1: List of Standard Group Policy Preferences

Group Policy Preferences were introduced into Windows Server 2008 & Vista to allow easier modification of settings that are categorised as preferences, e.g. a users printers or drive mappings. It’s a great way to move away from logon scripts that includes all the functionality of the GPMC. See the image on the left for an example of what can be set through GPPs. For more info on the difference between GP Policy vs. Preference vs. GP preferences check out this TechNet blog. One of the great features is Registry Settings and this is how we achieve our goal.

This will work on Windows XP, 2003, Vista, 2008 and Seven providing the client has the Group Policy Preference Client Side Extensions (CSE) and XMLite installed. Each version of windows can download the CSEs, for its particular OS, through Windows Update or WSUS. XMLite is installed with Internet Explorer 7 or Windows XP SP3 and is included in Vista and above. There are links to all of these files in this Microsoft knowledge base article

Forcing Outlook’s font

To find the correct registry values we need to choose a test machine and configure it how we want.

  • On a test pc with Office 2007 installed
  • Open Outlook
    • Go to Tools > Options > Mail Format > Stationery & Fonts…
    • Use the Font… button to specify the size, type and colour of the font for new messages
    • Use the other Font buttons to specify replies and plain text settings if necessary
    • Click OK and close outlook
  • Open the Group Policy Management Console (Part of RSAT – download here)Fig 2: Registry Settings in the GP Editor
  • Create a new Policy and open it in the Group Policy Editor
    • Go to User Configuration > Preferences > Windows Settings > Registry
    • You can either create the new keys yourself or use the much easier Registry Wizard
    • Right Click “Registry” and choose New > Registry Wizard (see Fig. 2)
      • Choose Local Computer
      • Navigte to the following Key
      • HKEY_CURRENT_USERSoftwareMicrosoftOffice12.0CommonMailSettingsFig 3: Registry Wizard
      • Tick the values ComposeFontComplex, ComposeFontSimple, ReplyFontComplex and ReplyFontSimple (see Fig. 3)
      • Click Finish
    • This will now import those settings into the policy. It will create nested folders (known as Collection in the GPE) for each registry key. These “Collections” are purely for administrative ease and can be renamed/moved/deleted as necessary.
  • We also use Office XP (aka 2000) and Office 2003. This involves the same steps as above only the registry keys & values are slightly different
    • Office 2003 Key: HKEY_CURRENT_USERSoftwareMicrosoftOffice11.0CommonMailSettings
    • Office 2003 Values: ComposeFontSimple and ReplyFontSimple
    • Office XP Key: HKEY_CURRENT_USERSoftwareMicrosoftOffice9.0OutlookPreferences
    • Office XP Values: ReplyFont and SendFont
  • That is all that needs to be done.
  • It will take effect the next time a users policy is refreshed and they restart Outlook.
  • Note; This does not prevent a user from changing a font in the email editor or in Outlook’s “options” menu but it will reset the next time the policy is refreshed and Outlook is restarted

Forcing Outlook’s Theme & Stationery

Group Policy Policies use Administrative Templates to provide policies for Windows. You can download the office templates as part of the Office Resource Kit.

Vista & 2008 introduced a more standardised and flexible xml-based template format known as admx files. If you don’t have any of these Operating systems you will need to use the text based adm files. I will show both methods in this article

Creating a custom ADM file for Outlook 2003

  • Open notepad and save the following text as OfficeTweaks.adm
  • CLASS USER
    • CATEGORY !!CustomUserSettings
        CATEGORY !!OutlookVersion
          POLICY !!DisableNewStationery
            EXPLAIN !!DisableNewStationery_Explain
            KEYNAME "SoftwarePoliciesMicrosoftOffice11.0CommonMailSettings"
            VALUENAME "NewStationery"
            VALUEON ""
            VALUEOFF NUMERIC 1
          END POLICY
        END CATEGORY
      END CATEGORY
      [strings]
      CustomUserSettings="Custom User Settings"
      OutlookVersion="Outlook 2003"
      DisableNewStationery="Disable Modify Default Stationery"
      DisableNewStationery_Explain="Enabled – Any Changes made to the user’s Stationery will be ignored by Outlook.  Disabled – No effect. Not Configured – Removes policy."
  • Open the policy you created for the Font Preferences
  • Go to User Configuration > Policies > Administrative Templates
  • Right-click Administrative Templates > Add/Remove Templates…
  • Click on Add and browse to the OfficeTweaks.adm file
  • If there are no errors in the text file it will appear under the Classic Administrative Templates node in the GPEFig 4: ADMX Editor in action!

Creating a custom ADMX file for Outlook 2007

This method uses the wonderful ADMX Editor (aka Migrator) mmc snap-in available here. We could use this to convert the adm above to admx but it doesn’t like the blank ON value. Luckily it is very easy to create an admx from scratch using this tool

  • Open FullArmor ADMX Editor
  • Create a new template e.g. Company Tweaks
  • Create a new category e.g. Office 2007
  • Create a new Policy Setting
    • Display Name: Ignore Legacy Stationery
    • Registry Key: SoftwarePoliciesMicrosoftOffice12.0CommonMailSettings
    • Registry Value Name: NewStationery
    • Class: User
    • Click OK
  • Any further editing is now done in the lower pane of the mmc
  • We now need to set the enabled and disabled values on the “Values” tab
    • Enabled Value
    • Type: Numeric
    • Value: 1
    • Disabled Value
    • Type: Deleted
  • You can also set a description on the “Explain” tab and specify what OS is required in the “Supported On” tab
  • Do the same steps as above to disable Themes but change these settings, the rest is identical.
    • Display Name: Ignore Legacy Themes
    • Registry Value Name: NewTheme
  • When done, right-click the Company Tweaks template node and choose “Save As”
    • This will create the admx file as well as the adml language specific file (defaults to en-us)
    • Make sure you save it in the central ADMX repository so it can be found from any server e.g. \ServerNameSYSVOLDomainPoliciesPolicyDefinitions
  • I have included the XML code below in case you have have any  problems
    • CompanyTweaks.admx
      <policyDefinitions revision="1.0" schemaVersion="1.0">
        <policyNamespaces>
          <target prefix="fullarmor" namespace="FullArmor.Policies.D6794E04_F392_4F19_A15B_F62B0DDFA6AB" />
          <using prefix="windows" namespace="Microsoft.Policies.Windows" />
        </policyNamespaces>
        <supersededAdm fileName="" />
        <resources minRequiredRevision="1.0" />
        <categories>
          <category name="CAT_EC276371_D237_4D8F_A003_B71664197891" displayName="$(string.CAT_EC276371_D237_4D8F_A003_B71664197891)" />
          <category name="CAT_6069CE00_5694_4EA3_ABC5_5EDCDE8BF407" displayName="$(string.CAT_6069CE00_5694_4EA3_ABC5_5EDCDE8BF407)">
            <parentCategory ref="CAT_EC276371_D237_4D8F_A003_B71664197891" />
          </category>
        </categories>
        <policies>
          <policy name="POL_8DB73A25_F07B_4516_A12B_DCF325E947C1" class="User" displayName="$(string.POL_8DB73A25_F07B_4516_A12B_DCF325E947C1)" explainText="$(string.POL_8DB73A25_F07B_4516_A12B_DCF325E947C1_Help)" key="SoftwarePoliciesMicrosoftOffice12.0CommonMailSettings" valueName="NewStationery">
            <parentCategory ref="CAT_6069CE00_5694_4EA3_ABC5_5EDCDE8BF407" />
            <supportedOn ref="windows:SUPPORTED_WindowsVista" />
          </policy>
          <policy name="POL_05A1EF63_973E_4211_A3E3_A94BDE041FD5" class="User" displayName="$(string.POL_05A1EF63_973E_4211_A3E3_A94BDE041FD5)" explainText="$(string.POL_05A1EF63_973E_4211_A3E3_A94BDE041FD5_Help)" key="SoftwarePoliciesMicrosoftOffice12.0CommonMailSettings" valueName="NewTheme">
            <parentCategory ref="CAT_6069CE00_5694_4EA3_ABC5_5EDCDE8BF407" />
            <supportedOn ref="windows:SUPPORTED_WindowsVista" />
          </policy>
        </policies>
      </policyDefinitions>
    • CompanyTweaks.adml

      <policyDefinitionResources revision="1.0" schemaVersion="1.0">
        <displayName>
        </displayName>
        <description>
        </description>
        <resources>
          <stringTable>
            <string id="DisableNewStationery">Restrict Legacy Stationery</string>
            <string id="DisableNewStationery_Explain">This policy settings allows you to manage if legacy Stationery is allowed in Outlook 2007 emails.
      If you enable this policy setting, any changes a user makes to their Stationery will be ignored by Outlook.
      If you disable this policy setting, it has no effect
      If you do not configure this policy setting, the restriction will be removed

      See also "Restrict Message Themes" policy</string>
            <string id="DisableNewTheme">Restrict Message Themes</string>
            <string id="DisableNewTheme_Explain">Prevents users from changing the default theme. NOTE: To disable, set to ‘Not Configured’ or move GPO out of scope.</string>
            <string id="EnteracommandbarIDtodisable">Enter a command ID to disable:</string>
            <string id="Outlook2007">Outlook 2007</string>
            <string id="CustomUserSettings">Custom User Settings</string>
            <string id="ADMXMigrator_UnresolvedString">ADMX Migrator encountered a string that is not present in the source ADM string table.</string>
            <string id="ADMXMigrator_NoSupportedOn">ADMX Migrator encountered a policy that does not have a supportedOn value.</string>
            <string id="SUPPORTED_WindowsVista">At least Microsoft Windows Vista</string>
          </stringTable>
          <presentationTable>
            <presentation id="DisableNewStationery" />
            <presentation id="DisableNewTheme" />
          </presentationTable>
        </resources>
      </policyDefinitionResources>

Conclusion

After all of this we can deliver some sort of control over how outlook handles fonts. It may be more complicated than running a registry import within a login script but it is a much more visible and controllable way to manage these settings. Hopefully, one day, Microsoft will include a handy font dropdown box in the admx files and we won’t need to bother with all this kerfuffle.

Sources

I got many useful tips from the following sites

Digg This

Slipstreaming Office 2007 SP2

If you didn’t already know, Service Pack 2 (SP2) for the excellent Office 2007 was released a while ago

From Microsoft:
The 2007 Microsoft Office Suite Service Pack 2 (SP2) provides customers with the latest updates to the 2007 Office suite (the products that are affected by this update are listed below). This download includes two types of fixes:

  • Previously unreleased fixes that were made specifically for this service pack. In addition to general product fixes, this includes improvements in stability, performance, and security.
  • All of the Public Updates, Security Updates, Cumulative Updates, and Hotfixes released through February 2009.
    Before installing this service pack, you are strongly encouraged to read
    953195, which describes some big improvements introduced by SP2, and also calls out some important information that you should be aware of before installing.

I just realised I haven’t yet updated our Office 2007 cd copy on the LAN.

This has become a lot simpler since Office 2003 but isn’t truly slipstreaming. All you need to do is place the service pack files in the Updates folder of the Office 2007 CD.

Like many IT departments we store a copy of all our software in a folder on our LAN. This makes it a lot easier to install across the network to any PC that requires it. We can also burn the copy back to a CD or create an ISO if necessary.

How to update your Office 2007 CD copy to Service Pack 2

  • The Basic Method

    • Run this line on a command prompt
    • <locationOfUpdate>Update.exe /extract:<cdCopyPath>Updates
  • Step by Step UI Method

    • Download the Service pack – office2007sp2-kb953195-fullfile-en-us.exe
    • Drag the exe to a command prompt window or the Run prompt and type “ /extract:c:Updates
      image
    • It will ask you to accept the T&C and you will then see a progress bar until all the files are extracted
    • Go to C:Updates in Windows Explorer to see the extracted files
    • Drag and drop them in to the Updates folder of wherever you keep your CD copy

It really is as simple as that. When you next go to install Office 2007 the setup will run whatever is in the “Updates” after it has completed the initial setup

One extra step I did was to delete the existing SP1 files from the updates folder. One would hope the installation would be clever enough to spot the superseded SP1 update and only install the more up to date SP2 files but I didn’t have the time, disk space or inclination to put this theory to the test 😉

On a side note, SP2 for Vista and Server 2008 were released to the web (RTW) today. Slipstreaming them is a bit different and a topic for another post!

Digg This

I’m part of the Microsoft Technical Community Council

Microsoft Logo

Microsoft have asked me to represent IT Pros around the UK as part of their new Technical Community Council (MTCC)

The aim is to drive deeper connection with IT professionals through independent customers representing certain job roles and being the voice of the customer to and from Microsoft.  This will build on the success we have had with the Audience Marketing Managers (AMMs) and the IT Evangelists (ITEs) being the public face of Microsoft to all IT Professionals in the UK.

MTCCThis means I will be hopefully doing much more blogging regarding my job role, at least 2 blogs a week, trying to give in insight into the successes and struggles I face.

You can find out more about the You can find out more about the Microsoft UK IT Professional Team (including the Community Council) at this page on Microsoft’s website

They are always looking for new members so if you are interested then drop me a line on my contact page

Installing XP Mode on Windows 7 RC

After playing around with windows7 beta on my laptop (Lenovo ThinkPad T60) I was very impressed. I did a straight upgrade from Vista SP1 and noticed a great performance boost and all my apps still worked.

Now the RC is released I have done a fresh install on my laptop, this time going for 64-bit. I have to say that the performance actually seems worse. I guess this is because of Lenovo’s vista drivers not being present anymore.

After I completed the essential first couple of steps (changing my logon screen image, listening to all the new sounds, checking out the Themes etc ;-)) I decided to give XP mode a shot. If you haven’t heard of XP Mode, it is a Virtual PC package that allows you to seamlessly run XP apps in Windows 7. On the one hand this is unnecessary for me because all my apps run perfectly in Windows 7, however, its nice to have a free fully-licensed virtual OS on my laptop.

Walkthrough: Setting up XP mode in Windows 7

  • Enable Hardware Virtualisation bits in the BIOS (varies from vendor to vendor)
    • Mine was located in the ThinkPad’s BIOS under Config>CPU>Intel Virtualization Technology
    • You will also need to make sure you do a hard reboot after changing the setting for it to work
      (i.e. don’t just “Save & Exit” the BIOS, completely turn of your PC)
  • Download & install Windows Virtual PC Beta (~5mb, installs just like a windows update patch)
  • Restart PC
  • Download Windows XP Mode Beta (~450mb)
  • Run the file
    image
  • Choose an install location and wait while the setup installs the VHD file 10:29
  • After ~3 mins you will get a UAC prompt image
  • 2 mins later the setup was complete
  • I know have a folder C:Program FilesVirtual Windows XP that contains three files
    • KEY.txt – the XP license key
    • Virtual Windows XP.vhd – the virtual hard disk file (1.1GB)
    • VXPEULA.txt – a 3634 word license agreement, I’ll save reading that for later
  • Now these bits are installed you should have a “Windows Virtual PC” folder on your Start Menu
  • This contains a shortcut to the currently empty folder “Virtual Machines”
    • Although this links to a folder, it is actually where you create VMs (through a simple wizard), edit configuration settings and also start a VM, all through the toolbar.
      image  image
    • You can also “Pin” this shortcut to the start menu to get a reasonably useful jump list
  • Clicking on the “Virtual Windows XP” icon starts the initial setup for XPM
    • Accept the license terms
    • Set a user password
      image
    • Next, it will ask you whether or not you want to enable automatic updates
    • After this point it will crash if you haven’t set up virtualisation in your BIOS, enable it and re-run the setup. 
      • ‘Virtual Windows XP’ could not be started because hardware-assisted virtualization is disabled. Please enable hardware virtualization in the BIOS settings and try again.
      • Not that I would do something stupid like that 😉
  • You will then get a progress bar for ~15mins
    image
  • After that is complete the XP Desktop should appear
    image 
  • You can now use this as you would any other VM.
  • The “magic” starts happening when you install a new app.
    • I downloaded the latest version of Firefox (3.0.10) and installed it within the XP VM
    • Now on my Windows 7 host I have a new folder on my start menu under “Windows Virtual PC” called “Virtual Windows XP Applications”
      image
      • Notice there are no shortcuts for the built in Windows XP apps like IE6 or MSN Messenger.
      • You can create these by simply adding a shortcut in the XP “All Users” start menu, this takes a few minutes for it to show up in Win7 and it doesn’t seem to work at all for some apps (i.e. pinball, msn messenger)
    • If you click on the apps from Windows 7 while the VM is open you will get the following prompt
      image 
      • This is to do with licensing and there is an EULA violating patch you can apply to prevent this but that is unnecessary for me
      • You also get a similar prompt if you try to launch the VM will the an app is running
        image
    • When the XP machine is “closed” it can initialise itself in a special “virtual app environment”.
    • The Win XP apps can then runs seamlessly on Win7 including XP themes and all the app settings as configured in the XP VM
    • Launch an app from the special start menu folder
      image
      It’s quite amazing, at first, how it works but the novelty soon wears off
      image
    • Once you have an app open you can easily launch any other XP program even if there is no shortcut on the start menu
      • Open up IE6 or Windows Explorer and use the address bar to browse XPs hard disk
      • You can then launch any program you like!
  • Another potentially powerful thing you can do is attach the XPM virtual hard disk to your Win7 file system
     image image
    • By doing this I was able to browse the folders within and launch Pinball! It also worked for wordpad and other simlarly simple apps but IE and WMP wouldn’t load
    • You can do this while the XP VM is open making it is to copy any files over if necessary

        Manual setup

        Don’t forget, Windows Virtual PC isn’t just for XP Mode. It can be installed on Windows 7 Professional SKU and above.
        You can choose to do this all manually if you have your own licenses or want to set up a VPC with Vista

        • Download & install Windows Virtual PC Beta
        • Create a new VM and install OS
        • Install the relevant RAIL QFE to the guest OS to allow seamless running of apps (XP sp3, Vista)

        Conclusion

        There are still a few tweaks to be made with the GUI/UX (like integrating the XP apps onto the taskbar with aero functionality) to make it completely seamless but overall they have done a great job to make it as easy as possible.

        It was a smart move by Microsoft to prevent the furore caused by Vista not running old apps, even though most apps have been updated for compatibility by now anyway!

         

        Windows Virtual XP homepage

        Microsoft XPM Guide for Small Business (better than mine!)

      • Digg This