Pushing Fonts via GPO

fontgroup-policywindows-server-2012-r2

an often asked question, but the standard solution does not seem to work for me.

I have a Windows Server 2012-R2 AD with mostly Windows 7 clients. I have a GPO that does the following:

Computer Configuration\Preferences\Windows Settings\Files:

Action: Update
Source: <Network drive domain computers have read access to>\fonts\*
Destination: %WindowsDir%\Fonts

Then I also update the Registry for every font individually:

Action: Update
Hive: HKLM
Value name: <fontname> <(TrueType)|(OpenType)>
Value type: REG_SZ
Value data: <font file name>

When I do gpupdate, the registry changes get deployed, but the fonts never arrive in the fonts folder. It is not an access problem, because when I change the destination to my Desktop all the fonts appear. I can also install them manually from there.

I tried:

  • Changing action to CREATE or REPLACE
  • Using full path for destination instead of %WindowsDir%
  • Using full path for source (so no wildcard)
  • Restarting destination machine

They just never get copied to the fonts folder. Is there a way to do this without creating an MSI?

Best Answer

There are a number of ways to handle this. Personally I found the 'Install' verb / action for the font file was the most reliable. This can be done in Powershell or VBS pretty easily with a SYSTEM scheduled task.

I use a variation on this to do all fonts in a folder.

$path = "\\font-server\Fonts"
$shell = New-Object -ComObject Shell.Application
$shell.Namespace($path).Items().InvokeVerbEx("Install")