Avatar of YellowbusTeam
YellowbusTeam
 asked on

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
Windows Server 2008Active DirectoryInstallation

Avatar of undefined
Last Comment
YellowbusTeam

8/22/2022 - Mon
Manjunath Sullad

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
YellowbusTeam

ASKER
Thanks Manjunath,

The client OS are win7 clients mostly 64bit.

Cheers

Matt
Manjunath Sullad

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.
Experts Exchange is like having an extremely knowledgeable team sitting and waiting for your call. Couldn't do my job half as well as I do without it!
James Murphy
Guy Lidbetter

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
YellowbusTeam

ASKER
Thanks all,

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

Cheers

Matt
YellowbusTeam

ASKER
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
⚡ FREE TRIAL OFFER
Try out a week of full access for free.
Find out why thousands trust the EE community with their toughest problems.
YellowbusTeam

ASKER
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
Vadim Rapp

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
Vadim Rapp

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.
Your help has saved me hundreds of hours of internet surfing.
fblack61
Irwin W.

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?
Dave

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.
YellowbusTeam

ASKER
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
⚡ FREE TRIAL OFFER
Try out a week of full access for free.
Find out why thousands trust the EE community with their toughest problems.
Vadim Rapp

> 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?
YellowbusTeam

ASKER
Ok i will update once i have tested it again.

Thanks for the attention
YellowbusTeam

ASKER
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 ===
All of life is about relationships, and EE has made a viirtual community a real community. It lifts everyone's boat
William Peck
YellowbusTeam

ASKER
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
Vadim Rapp

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.
YellowbusTeam

ASKER
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.
⚡ FREE TRIAL OFFER
Try out a week of full access for free.
Find out why thousands trust the EE community with their toughest problems.
YellowbusTeam

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

The MSI is present in the Programs.
Vadim Rapp

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

ASKER
=== 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 ===
This is the best money I have ever spent. I cannot not tell you how many times these folks have saved my bacon. I learn so much from the contributors.
rwheeler23
YellowbusTeam

ASKER
=== 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 ===
Vadim Rapp

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?
YellowbusTeam

ASKER
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
⚡ FREE TRIAL OFFER
Try out a week of full access for free.
Find out why thousands trust the EE community with their toughest problems.
ASKER CERTIFIED SOLUTION
Vadim Rapp

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
NVIT

> 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
Vadim Rapp

I wonder if it's wise to look for a new tool whenever there's a problem with the old one.
YellowbusTeam

ASKER
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
I started with Experts Exchange in 2004 and it's been a mainstay of my professional computing life since. It helped me launch a career as a programmer / Oracle data analyst
William Peck