Finally figured out how to install fonts on Win7 with BigFix!

(imported topic written by deschodt91)

Took some doing, as fonts seem to only install “in person” on Win7 ! The way we ended up doing it is convoluted but it works on remote pushes to machines that are pretty locked down:

  • An Installshield setup.exe drops the font file in c:\windows\fonts, plus a VB script and a batch file in an unlocked folder (“c:\barcode” here, permissions set to everyone), and imports a registry entry on the PC.

For instance this font is 3of 9 Bar code…

The vb script, named barcode.vbs, is as follows :

Set objShell = CreateObject(“Shell.Application”)

Set objFolder = objShell.Namespace(“c:\windows\fonts”)

Set objFolderItem = objFolder.ParseName(“FRE3OF9X.ttf”)

objFolderItem.InvokeVerb(“Install”)

The batch file, called Runme.bat, is equally mundane:

cscript “C:\Barcode\barcode.vbs”

the registry key is the juicy bit:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\Barcode

“StubPath”=“c:\Barcode\RunMe.bat”

It uses active setup, so that when the user logs on next time, regedit compares the current user hive with that new stuff, doesn’t see it, and adds it… that forces the batch file to run the VB script under that user profile, and registers the damn font !

Seems to work !!!

(imported comment written by NoahSalzman)

Nice contribution, thank you!

(imported comment written by SystemAdmin)

I have similar reqiurement to install fonts on Windows XP and 2003 for AD users, Is there any easy way to deploy fonts to clients? should I use same VB script for XP client?

Alan Lai

(imported comment written by JasonWalker)

I realize I’m WAY late to this party, but for anybody searching in this thread later, check out Microsoft’s ‘The Scripting Guy’ article at
http://blogs.technet.com/b/heyscriptingguy/archive/2008/04/25/how-can-i-install-fonts-using-a-script.aspx

Windows only recognizes the new font install when you use the Shell object to copy the font there. VBScript for this is pretty easy:

Const FONTS = &H14&

strFontFile=wscript.arguments.unnamed(0)

set oFSO=CreateObject(“Scripting.FileSystemObject”)

Set objShell = CreateObject(“Shell.Application”)

Set objFolder = objShell.Namespace(FONTS)

objFolder.CopyHere oFSO.GetAbsolutePathName(strFontFile)

I’m working on getting this into a Fixlet now.

(imported comment written by reneschmidt)

Hi

We packed the fonts with Advanced Installer (free edition). It creates a .msi file. Very easy and streamlined. You do not need user-specific install.

There is a special option in Advance Installer to register also the fonts to the registry.

Link:
http://www.advancedinstaller.com/features.html