We help IT Professionals succeed at work.

Deploying Fonts Via GPO

Hi,

i am trying to install a set of fonts on our client network and have been following this http://www.urtech.ca/2014/02/solved-how-to-deploy-fonts-using-group-policy/ but with no success.

The group policy is applied but the fonts are not being installed, also i have shared off the folder where the fonts are to everyone and with full permissions.

Any help with this is appreciated.


Cheers

Matt
Comment
Watch Question

Manjunath SulladTechnical Consultant

Commented:
What is your client Operating system ?

Even you can install fonts by running powershell scripts and you can add it to Group policy preferences scheduled tasks,

Take a look below URL for more info.

http://deployhappiness.com/installing-fonts-with-powershell/


If you are using Win XP systems, Check the permissions for below registry.


HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
%systemroot%\fonts


https://social.technet.microsoft.com/Forums/windowsserver/en-US/b21c230d-4973-4e83-b9da-9f2e8b2104a4/install-fonts-via-group-policy?forum=winserverGP

Author

Commented:
Thanks Manjunath,

The client OS are win7 clients mostly 64bit.

Cheers

Matt
Manjunath SulladTechnical Consultant

Commented:
Try installing thorugh Poweshell script,


For Windows 7 clients, please try disabling UAC, make sure domain users have permission on the following folder and registry to check the results:
 
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
%systemroot%\Fonts
%systemroot%/system32/FNTCACHE.dat
 
You can also copy .ttf file to the %systemroot%\fonts and add an entry under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts manually as a test.

Refere below URL for furhter troubleshoot,

https://social.technet.microsoft.com/Forums/windowsserver/en-US/b21c230d-4973-4e83-b9da-9f2e8b2104a4/install-fonts-via-group-policy?forum=winserverGP


Let us know if you stuck in-between.
Top Expert 2015

Commented:
Hi Matt,

As this is a computer level GPO, disabling UAC will not make a diffrence. The most likey cause of this not working is permissions to the share.
Remember it's the PC accessing the share not the User, and the policy is usually run on startup before the login screen.

So try this...

On the network share, make sure the share permissions is full control  for everyone. On the security Tab - add "Domain COmputers" with "Read & Execute" persmissions,
Make certain the GPO is linked to the COMPUTER OU where the PC's are located.

Restart the PC.

If this does not work, run an Admin CMD window and run "gpresult /r /scope:computer" and make sure that the policy is in the applied section...

Regards

Guy

Author

Commented:
Thanks all,

Am waiting for an chance to test this, it will probably be in the morning now.

Cheers

Matt

Author

Commented:
I have gone down the Scheduled tasks route but when the script tryd to run i get the error: Fontinstall.ps1 cannot be loaded because the execution of scripts is disabled on this system.

Is there  way to change this on all PCs via GPO?

Cheers

Matt

Author

Commented:
The current script is
#Font Locations
    #Network Location
    $NetworkPath = \\10.70.70.40\$Font
    #Local Location (temp place to store fonts)
    $LocalPath= "C:\Users\Public\Fonts\"

$FONTS = 0x14
$objShell = New-Object -ComObject Shell.Application
$objFolder = $objShell.Namespace($FONTS)

New-Item $LocalPath -type directory -Force
Copy-Item "$NetworkPath\*" $LocalPath

$Fontdir = dir $LocalPath
foreach($File in $Fontdir)
{
  if ((Test-Path "C:\Windows\Fonts\$File") -eq $False)
    {
    $objFolder.CopyHere($File.fullname,0x10)
    }

I have been able to run it but now i get these errors:
The term '\\10.70.70.40\$Font' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At \\10.70.70.40\font\Fontinstall.ps1:3 char:39
+     $NetworkPath = \\10.70.70.40\$Font <<<< 
    + CategoryInfo          : ObjectNotFound: (\\10.70.70.40\$Font:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
Please find out and post the result:

Is the MSI being launched during computer startup?
      If it is, produce detailed log and post here.
      If not, check if it is actually assigned to the machine,using Group Policy Results Wizard
By the way, I checked the instructions in the article at www.urtech.ca you mentioned, and they are excessive - writing registry information (points #8 and 9 under #2) is not needed and is actually a bad idea. Windows automatically registers any fonts copied into its Fonts folder, and it's better to leave it to Windows.
nappy_dThere are a 1000 ways to skin the technology cat.

Commented:
How many fonts are you looking to install and manage? This may not be a wise idea if you have a lot of fonts to be used.

Have you considered a font manager?

Commented:
There are script time outs set by default they are 10 minutes but that's I think for all scripts. This can be changed by policy but you may need two re-boots to get the policy to apply and then to get the scripts to run.

Author

Commented:
How i have set this up, I have created a scheduled task using group policy, this then references the PS1 script which in turn should install the scripts.

Is there a better and easier way of doing this?

Cheers

Matt
> Is there a better and easier way of doing this?

The better way is exactly by deploying MSI, especially if you already have created it. You have requested attention, and I posted the instructions pertaining to your original question. Did you review them?

Author

Commented:
Ok i will update once i have tested it again.

Thanks for the attention

Author

Commented:
Detailed ~MSI Log

MSI (c) (E4:BC) [13:17:28:939]: User policy value 'DisableRollback' is 0
MSI (c) (E4:BC) [13:17:28:939]: Machine policy value 'DisableRollback' is 0
MSI (c) (E4:BC) [13:17:28:944]: Machine policy value 'DisableUserInstalls' is 0
MSI (c) (E4:BC) [13:17:29:001]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3: 2
MSI (c) (E4:BC) [13:17:29:003]: Executing op: Header(Signature=1397708873,Version=500,Timestamp=1186754247,LangId=1033,Platform=0,ScriptType=3,ScriptMajorVersion=21,ScriptMinorVersion=4,ScriptAttributes=0)
MSI (c) (E4:BC) [13:17:29:004]: Executing op: ProductInfo(ProductKey={22FCAE43-EAD0-49D8-9ED0-2C6899535DEA},ProductName=Your Application,PackageName=Fontinstall.msi,Language=1033,Version=16777216,Assignment=1,ObsoleteArg=0,,,PackageCode={4FD6596E-C540-4195-9C1A-F5E7EF1D7923},,,InstanceType=0,LUASetting=0,RemoteURTInstalls=0,ProductDeploymentFlags=3)
MSI (c) (E4:BC) [13:17:29:004]: Executing op: DialogInfo(Type=0,Argument=1033)
MSI (c) (E4:BC) [13:17:29:004]: Executing op: DialogInfo(Type=1,Argument=Your Application)
MSI (c) (E4:BC) [13:17:29:004]: Executing op: RollbackInfo(,RollbackAction=Rollback,RollbackDescription=Rolling back action:,,CleanupAction=RollbackCleanup,CleanupDescription=Removing backup files,CleanupTemplate=File: [1])
MSI (c) (E4:BC) [13:17:29:004]: Executing op: ActionStart(Name=PublishFeatures,Description=Publishing Product Features,Template=Feature: [1])
MSI (c) (E4:BC) [13:17:29:005]: Executing op: FeaturePublish(Feature=MainFeature,,Absent=0,)
MSI (c) (E4:BC) [13:17:29:006]: Executing op: ActionStart(Name=PublishProduct,Description=Publishing product information,)
MSI (c) (E4:BC) [13:17:29:006]: Executing op: CleanupConfigData()
MSI (c) (E4:BC) [13:17:29:007]: Executing op: ProductPublish(PackageKey={4FD6596E-C540-4195-9C1A-F5E7EF1D7923})
MSI (c) (E4:BC) [13:17:29:012]: Executing op: UpgradeCodePublish(UpgradeCode={9FBF3F6A-2EF0-4C36-BE7F-76630EC8AC9E})
MSI (c) (E4:BC) [13:17:29:013]: Executing op: SourceListPublish(,,DiskPromptTemplate=[1],,NumberOfDisks=1)
MSI (c) (E4:BC) [13:17:29:016]: Executing op: ProductPublishClient(,,)
MSI (c) (E4:BC) [13:17:29:017]: Executing op: End(Checksum=0,ProgressTotalHDWord=0,ProgressTotalLDWord=0)
MSI (c) (E4:BC) [13:17:29:067]: Note: 1: 2318 2:  
MSI (c) (E4:BC) [13:17:29:074]: DoAdvertiseScript is returning: 0
=== Verbose logging stopped: 05/06/2015  13:17:29 ===

Author

Commented:
This failed to install the fonts i have checked and the PC is in the correct OU and is getting the policy applied.

Can anyone tell from the log above what is going wrong?

Cheers
Looks like it's advertised, but not actually installed. Did you assign it under Computer Configuration, like on this screenshot?
screenshot
If you did:
1. try to run this installation manually.
2. troubleshoot using information from https://technet.microsoft.com/en-us/library/cc775423%28v=ws.10%29.aspx , specifically what you want is Software Installation CSE - see if the installation is launched.

Author

Commented:
I did try to run the installation manually and i think there is an issue with the MSI.

Thanks for your help so far Vadim.

Author

Commented:
I have managed to get the MSI to install but now no Fonts get installed??

The MSI is present in the Programs.
Again, please post detailed log of the installation. If it's assigned to the machine, the log will be in %windir%\temp .

Author

Commented:
=== Verbose logging started: 23/07/2015  15:22:59  Build type: SHIP UNICODE 5.00.7601.00  Calling process: C:\Windows\system32\svchost.exe ===
MSI (c) (4C:CC) [15:22:59:256]: User policy value 'DisableRollback' is 0
MSI (c) (4C:CC) [15:22:59:256]: Machine policy value 'DisableRollback' is 0
MSI (c) (4C:CC) [15:22:59:366]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3: 2
MSI (c) (4C:CC) [15:22:59:368]: Executing op: Header(Signature=1397708873,Version=500,Timestamp=1189695847,LangId=1033,Platform=0,ScriptType=3,ScriptMajorVersion=21,ScriptMinorVersion=4,ScriptAttributes=0)
MSI (c) (4C:CC) [15:22:59:368]: Executing op: ProductInfo(ProductKey={80F8770E-338D-4241-8F3F-755A6325317B},ProductName=Font Install,PackageName=Font Install.msi,Language=1033,Version=16777216,Assignment=1,ObsoleteArg=0,,,PackageCode={8CE56F37-E4A6-4A7C-AA6A-16C0D5402406},,,InstanceType=0,LUASetting=0,RemoteURTInstalls=0,ProductDeploymentFlags=3)
MSI (c) (4C:CC) [15:22:59:369]: Executing op: DialogInfo(Type=0,Argument=1033)
MSI (c) (4C:CC) [15:22:59:369]: Executing op: DialogInfo(Type=1,Argument=Font Install)
MSI (c) (4C:CC) [15:22:59:369]: Executing op: RollbackInfo(,RollbackAction=Rollback,RollbackDescription=Rolling back action:,,CleanupAction=RollbackCleanup,CleanupDescription=Removing backup files,CleanupTemplate=File: [1])
MSI (c) (4C:CC) [15:22:59:369]: Executing op: ActionStart(Name=PublishFeatures,Description=Publishing Product Features,Template=Feature: [1])
MSI (c) (4C:CC) [15:22:59:369]: Executing op: FeaturePublish(Feature=MainFeature,,Absent=0,)
MSI (c) (4C:CC) [15:22:59:371]: Executing op: ActionStart(Name=PublishProduct,Description=Publishing product information,)
MSI (c) (4C:CC) [15:22:59:371]: Executing op: CleanupConfigData()
MSI (c) (4C:CC) [15:22:59:372]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\E0778F08D8331424F8F357A5365213B7\Patches 3: 2
MSI (c) (4C:CC) [15:22:59:372]: Executing op: ProductPublish(PackageKey={8CE56F37-E4A6-4A7C-AA6A-16C0D5402406})
MSI (c) (4C:CC) [15:22:59:373]: Note: 1: 1402 2: UNKNOWN\Installer\Products\E0778F08D8331424F8F357A5365213B7 3: 2
MSI (c) (4C:CC) [15:22:59:373]: Note: 1: 1402 2: UNKNOWN\Installer\Products\E0778F08D8331424F8F357A5365213B7 3: 2
MSI (c) (4C:CC) [15:22:59:373]: Note: 1: 1402 2: UNKNOWN\Installer\Products\E0778F08D8331424F8F357A5365213B7 3: 2
MSI (c) (4C:CC) [15:22:59:373]: Note: 1: 1402 2: UNKNOWN\Installer\Products\E0778F08D8331424F8F357A5365213B7 3: 2
MSI (c) (4C:CC) [15:22:59:373]: Note: 1: 1402 2: UNKNOWN\Installer\Products\E0778F08D8331424F8F357A5365213B7 3: 2
MSI (c) (4C:CC) [15:22:59:373]: Note: 1: 1402 2: UNKNOWN\Installer\Products\E0778F08D8331424F8F357A5365213B7 3: 2
MSI (c) (4C:CC) [15:22:59:373]: Note: 1: 1402 2: UNKNOWN\Installer\Products\E0778F08D8331424F8F357A5365213B7 3: 2
MSI (c) (4C:CC) [15:22:59:373]: Note: 1: 1402 2: UNKNOWN\Installer\Products\E0778F08D8331424F8F357A5365213B7 3: 2
MSI (c) (4C:CC) [15:22:59:373]: Note: 1: 1402 2: UNKNOWN\Installer\Products\E0778F08D8331424F8F357A5365213B7 3: 2
MSI (c) (4C:CC) [15:22:59:373]: Note: 1: 1402 2: UNKNOWN\Installer\Products\E0778F08D8331424F8F357A5365213B7 3: 2
MSI (c) (4C:CC) [15:22:59:373]: Note: 1: 1402 2: UNKNOWN\Installer\Products\E0778F08D8331424F8F357A5365213B7 3: 2
MSI (c) (4C:CC) [15:22:59:379]: Executing op: UpgradeCodePublish(UpgradeCode={74BF21CB-F8A6-43FD-9D79-9D9DD27B7808})
MSI (c) (4C:CC) [15:22:59:379]: Executing op: SourceListPublish(,,DiskPromptTemplate=[1],,NumberOfDisks=1)
MSI (c) (4C:CC) [15:22:59:379]: Note: 1: 1402 2: UNKNOWN\Installer\Products\E0778F08D8331424F8F357A5365213B7\SourceList 3: 2
MSI (c) (4C:CC) [15:22:59:380]: Executing op: ProductPublishClient(,,)
MSI (c) (4C:CC) [15:22:59:381]: Executing op: End(Checksum=0,ProgressTotalHDWord=0,ProgressTotalLDWord=0)
MSI (c) (4C:CC) [15:22:59:383]: Note: 1: 2318 2:  
MSI (c) (4C:CC) [15:22:59:383]: DoAdvertiseScript is returning: 0
=== Verbose logging stopped: 23/07/2015  15:22:59 ===

Author

Commented:
=== Verbose logging started: 27/07/2015  13:45:17  Build type: SHIP UNICODE 5.00.7601.00  Calling process: C:\Windows\system32\svchost.exe ===
MSI (c) (10:30) [13:45:17:060]: User policy value 'DisableRollback' is 0
MSI (c) (10:30) [13:45:17:061]: Machine policy value 'DisableRollback' is 0
MSI (c) (10:30) [13:45:17:061]: Machine policy value 'DisableUserInstalls' is 0
MSI (c) (10:30) [13:45:17:062]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3: 2
MSI (c) (10:30) [13:45:17:063]: Executing op: Header(Signature=1397708873,Version=500,Timestamp=1190882626,LangId=1033,Platform=0,ScriptType=3,ScriptMajorVersion=21,ScriptMinorVersion=4,ScriptAttributes=0)
MSI (c) (10:30) [13:45:17:063]: Executing op: ProductInfo(ProductKey={E9A331B5-CBBC-4B40-9522-3497325FCE5E},ProductName=Font install,PackageName=Font Install.msi,Language=1033,Version=16777216,Assignment=1,ObsoleteArg=0,,,PackageCode={9A31FC77-7C97-40AD-A5B1-8778124BFEC9},,,InstanceType=0,LUASetting=0,RemoteURTInstalls=0,ProductDeploymentFlags=3)
MSI (c) (10:30) [13:45:17:063]: Executing op: DialogInfo(Type=0,Argument=1033)
MSI (c) (10:30) [13:45:17:063]: Executing op: DialogInfo(Type=1,Argument=Font install)
MSI (c) (10:30) [13:45:17:063]: Executing op: RollbackInfo(,RollbackAction=Rollback,RollbackDescription=Rolling back action:,,CleanupAction=RollbackCleanup,CleanupDescription=Removing backup files,CleanupTemplate=File: [1])
MSI (c) (10:30) [13:45:17:063]: Executing op: ActionStart(Name=PublishFeatures,Description=Publishing Product Features,Template=Feature: [1])
MSI (c) (10:30) [13:45:17:063]: Executing op: FeaturePublish(Feature=MainFeature,,Absent=0,)
MSI (c) (10:30) [13:45:17:063]: Executing op: ActionStart(Name=PublishProduct,Description=Publishing product information,)
MSI (c) (10:30) [13:45:17:064]: Executing op: CleanupConfigData()
MSI (c) (10:30) [13:45:17:064]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\5B133A9ECBBC04B45922437923F5ECE5\Patches 3: 2
MSI (c) (10:30) [13:45:17:064]: Executing op: ProductPublish(PackageKey={9A31FC77-7C97-40AD-A5B1-8778124BFEC9})
MSI (c) (10:30) [13:45:17:064]: Note: 1: 1402 2: UNKNOWN\Installer\Products\5B133A9ECBBC04B45922437923F5ECE5 3: 2
MSI (c) (10:30) [13:45:17:064]: Note: 1: 1402 2: UNKNOWN\Installer\Products\5B133A9ECBBC04B45922437923F5ECE5 3: 2
MSI (c) (10:30) [13:45:17:064]: Note: 1: 1402 2: UNKNOWN\Installer\Products\5B133A9ECBBC04B45922437923F5ECE5 3: 2
MSI (c) (10:30) [13:45:17:064]: Note: 1: 1402 2: UNKNOWN\Installer\Products\5B133A9ECBBC04B45922437923F5ECE5 3: 2
MSI (c) (10:30) [13:45:17:064]: Note: 1: 1402 2: UNKNOWN\Installer\Products\5B133A9ECBBC04B45922437923F5ECE5 3: 2
MSI (c) (10:30) [13:45:17:064]: Note: 1: 1402 2: UNKNOWN\Installer\Products\5B133A9ECBBC04B45922437923F5ECE5 3: 2
MSI (c) (10:30) [13:45:17:064]: Note: 1: 1402 2: UNKNOWN\Installer\Products\5B133A9ECBBC04B45922437923F5ECE5 3: 2
MSI (c) (10:30) [13:45:17:064]: Note: 1: 1402 2: UNKNOWN\Installer\Products\5B133A9ECBBC04B45922437923F5ECE5 3: 2
MSI (c) (10:30) [13:45:17:064]: Note: 1: 1402 2: UNKNOWN\Installer\Products\5B133A9ECBBC04B45922437923F5ECE5 3: 2
MSI (c) (10:30) [13:45:17:064]: Note: 1: 1402 2: UNKNOWN\Installer\Products\5B133A9ECBBC04B45922437923F5ECE5 3: 2
MSI (c) (10:30) [13:45:17:064]: Note: 1: 1402 2: UNKNOWN\Installer\Products\5B133A9ECBBC04B45922437923F5ECE5 3: 2
MSI (c) (10:30) [13:45:17:066]: Executing op: UpgradeCodePublish(UpgradeCode={308C7DAA-AA9E-4DDE-AFA9-63A03829CA00})
MSI (c) (10:30) [13:45:17:067]: Executing op: SourceListPublish(,,DiskPromptTemplate=[1],,NumberOfDisks=1)
MSI (c) (10:30) [13:45:17:067]: Note: 1: 1402 2: UNKNOWN\Installer\Products\5B133A9ECBBC04B45922437923F5ECE5\SourceList 3: 2
MSI (c) (10:30) [13:45:17:069]: Executing op: ProductPublishClient(,,)
MSI (c) (10:30) [13:45:17:070]: Executing op: End(Checksum=0,ProgressTotalHDWord=0,ProgressTotalLDWord=0)
MSI (c) (10:30) [13:45:17:072]: Note: 1: 2318 2:  
MSI (c) (10:30) [13:45:17:072]: DoAdvertiseScript is returning: 0
=== Verbose logging stopped: 27/07/2015  13:45:17 ===
According to the log, the installation was only advertised, but it did not actually install.

How did you specify this installation package in group policy - under Machine Configuration, or under User configuration?

Author

Commented:
I set it under computer configuration, the package installs but no fonts are present i even re-did the MSI file making sure the fonts were in the package.

I notice part of the log says rollback. Is it getting so far and failing dud to a permission or something?

Cheers
No, there was no rollback. The log you posted is typical log of advertising the product, rather than actually installing it. The log of actual installation would be several times longer. Publishing is possible when the installation is published per-user, but you say it's per-machine. So we probably need to find out why it's only advertising it.

Use information in https://technet.microsoft.com/en-us/library/Cc775423(v=WS.10).aspx and produce log "Software Installation CSE" -
set HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Diagnostics\Appmgmtdebuglevel=dword:0000009b, restart computer, then collect %windir%\debug\usermode\appmgmt.log and post here.
NVITEnd-user support

Commented:
> Is there a better and easier way of doing this
If you are open to alternative method with 3rd party tools, one I like to use is PDQ Deploy, by Admin Arsenals. They have a free version. You can install PDQ Deploy on Windows 7, Vista SP2, or Windows server. For deploying fonts... http://www.adminarsenal.com/admin-arsenal-blog/deploy-fonts-to-your-computers
I wonder if it's wise to look for a new tool whenever there's a problem with the old one.

Author

Commented:
We resolved this by using another piece of software called Smart packager by Scalable.

We had nothing running on a PC and set it to discovery which monitors changes to the system, installed the drivers then ended the discovery this then gave an option to create the MSI, once this was doen we tested and it worked fine no problems.

Thanks for all your assistance in this matter :)

Matt