You can Install a font on Windows device manually. First, download the font file (e.g. from Google Fonts). After you download the font file, Right-click on it, then select the Install.
When you install a font on the Windows device, it gets copied in C:\Windows\fonts directory. It will also create a registry entry at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts location.
Instead of Installing fonts manually on each device, If the organization devices are managed by Intune, then we can automate this deployment and Installation process. There are various ways to deploy fonts via Intune like Win32 App method [Recommended], the Master Packager tool, and the PowerShell script.
We will focus on Win32 App method which is our recommended method for this task. For information on other deployment methods, please refer to the step-by-step guide Simplify Fonts Deployment in Intune: 3 Methods.
Step-by-Step guide
Table of Contents
Ways to Install Fonts on Windows Devices using Intune
Multiple methods are available to install fonts on Windows devices. Let’s explore the various ways in the list below:
- Using Win32App Deployment – The best method for deploying font files on Windows devices involves the Win32 App deployment method. While this method requires PowerShell scripts, it offers improved deployment reporting, and you can easily uninstall fonts from users devices.
- Using Master Packager – The Master Packager tool allows you to create and edit MSI files. We will use the community edition of this tool to create an MSI Installer file that includes our custom Font files. Then, using the Line of Business App option, we will deStepploy this MSI file.
- Using a Powershell Script – This method involves creating a PowerShell script to deploy font files. The script essentially copies the font file to the C:\Windows\fonts directory. You can then deploy the script using Intune. For a step-by-step guide on deploying a PowerShell script, refer to the following guide: How to deploy a PowerShell script using Intune
Method 1 – Deploy Fonts Using Win32 App Method [Recommended]
The first method we will discuss involves using the Win32 App method on the Intune admin center. This approach requires PowerShell scripts to deploy font files on Windows 10 and 11 devices. This is the best option, and my recommended method as well. Let’s check the steps:
Step 1 – Download Font files
You can download font files from Google Fonts open-source font library. Please note, a license is not required to use Google fonts. To gain further insights into their licensing and usage, refer to the FAQs page on their website.
Step 2 – Create an IntuneWin file
Follow the steps below to create the IntuneWin file for the deployment. For more detailed information on creating an IntuneWin file, refer to How to create an IntuneWin file.
- Create an empty folder named DeployFonts or any name you like.
- Create a subfolder under DeployFonts and call it Fonts.
- Copy all font files with .ttf or .otf extension to the Fonts folder.
- Create two PowerShell scripts, InstallFonts.ps1 and Uninstallfonts.ps1, in the DeployFonts folder. [Copy and Paste the script code below into these files].
InstallFonts.ps1
<# .SYNOPSIS Install Fonts on users devices .DESCRIPTION Below script will Install all fonts copied inside Fonts directory to a target device .NOTES Name : Font Installation Script Author : Jatin Makhija Version : 1.0.0 DateCreated: 31-Jan-2023 Blog : https://cloudinfra.net .LINK https://cloudinfra.net #> #Get all fonts from Fonts Folder $Fonts = Get-ChildItem .\Fonts $regpath = "HKLM:\Software\Microsoft\Windows NT\CurrentVersion\Fonts" foreach ($Font in $Fonts) { $fontbasename = $font.basename If ($Font.Extension -eq ".ttf") {$fontvalue = $Font.Basename + " (TrueType)"} elseif($Font.Extension -eq ".otf") {$fontvalue = $Font.Basename + " (OpenType)"} else {Write-Host " Font Extenstion not supported " -ForegroundColor blue -backgroundcolor white; break} $fontname = $font.name if (Test-path C:\windows\fonts\$fontname) { Write-Host "$fontname already exists." } Else { Write-Host "Installing $fontname" #Installing Font $null = Copy-Item -Path $Font.fullname -Destination "C:\Windows\Fonts" -Force -EA Stop } Write-Host "Creating reg keys..." #Creating Font Registry Keys $null = New-ItemProperty -Name $fontvalue -Path $regpath -PropertyType string -Value $Font.name -Force -EA Stop }
UninstallFonts.ps1
<# .SYNOPSIS Uninstall Fonts from users devices .DESCRIPTION Below script will Uninstall all fonts copied inside Fonts directory to a target device .NOTES Name : Font Uninstallation Script Author : Jatin Makhija Version : 1.0.0 DateCreated: 31-Jan-2023 Blog : https://cloudinfra.net .LINK https://cloudinfra.net #> #Get all fonts from Fonts Folder $Fonts = Get-ChildItem .\Fonts $regpath = "HKLM:\Software\Microsoft\Windows NT\CurrentVersion\Fonts" foreach ($Font in $Fonts) { $fontname = $font.name $fontbasename = $font.basename If ($Font.Extension -eq ".ttf") {$fontvalue = $Font.Basename + " (TrueType)"} elseif($Font.Extension -eq ".otf") {$fontvalue = $Font.Basename + " (OpenType)"} else {Write-Host " Font Extenstion not supported " -ForegroundColor blue -backgroundcolor white; break} #Remove Font from Windows folder Remove-Item C:\windows\fonts\$fontname -force -EA SilentlyContinue #Delete corresponding registry keys for the font Remove-ItemProperty -Path $regpath -Name $fontvalue -force -EA SilentlyContinue }
- Download Microsoft Win32 Content Prep Tool. It’s a zip file, Extract its contents into a folder.
- Create an empty folder, for example, C:\output, or anywhere else.
- Repackage the DeployFonts folder to a .intunewin file using IntuneWinAppUtil.exe in the Microsoft Win32 Content Prep Tool.
.\IntuneWinAppUtil.exe -c "C:\DeployFonts\" -s InstallFonts.ps1 -o C:\output
- Once the command is executed successfully, you can check the c:\output folder where the .intunewin file is created. We will use this file later to create a Windows app (win32) deployment.
Step 3: Create Win32 App Deployment to Deploy Fonts
Now, we have .Intunewin file created, Let’s check the deployment steps:
- Sign in to the Intune admin center > Apps > All Apps.
- Click on + Add and Select Windows app (Win32) from the app type.
App Information
Click on Select app package file and browse .Intunewin file. Provide Information in the mandatory fields below. The rest of the fields are optional but useful for application documentation and troubleshooting issues.
- Name – Provide a unique name of the application. This name will show up on the Company portal app. For example, Fonts Installation
- Description – Provide a useful description.
- Publisher – Provide Publisher information. For example, Microsoft.
Program Tab
Provide the Install command, uninstall command, Install behavior, and Device restart behavior. Click on Next to proceed.
- Install command: powershell.exe -Executionpolicy Bypass -File .\Installfonts.ps1
- Uninstall command: powershell.exe -Executionpolicy Bypass -File .\Uninstallfonts.ps1
- Install behavior: System
- Device restart behavior: No specific Action
Requirements Tab
You can specify the requirements that devices must meet to deploy the app. If your devices mix 32-bit and 64-bit types, check the boxes for 32-bit and 64-bit in the Operating system architecture drop-down. Else, go with 64-bit.
- Operating System Architecture: 64-bit
- Minimum operating system: Select the minimum OS requirement for this deployment.
Detection Rules
Select Manually configure detection rules and click on +Add to add a detection rule.
- Rules Format: Select Manually configure detection rules
- Rule Type: File
- Path: Provide the location of C:\windows\fonts and the name of the font file to detect.
Create one rule for each font file to detect all fonts under C:\windows\fonts directory. For example:
- Rule type: File
- Path: C:\windows\fonts\
- File or folder: Alata-Regular.ttf
- Detection Method: File or Folder exists.
- As I will deploy 4 font files, four detection rules will be required to detect each font file to confirm the Installation.
- Assignments Tab – Select Add groups and opt for an Entra security group containing Windows 10/11 devices or Entra ID users.
- Review + Create – Review the deployment and click on Create.
Step 4 – Monitoring Fonts Deployment Progress
You can follow the below steps to monitor the installation:
From the Intune admin center > Apps > All apps. Click on the deployment and check the Overview page to show the deployment status.
Method 2 – Use Master Packager Tool to Deploy Fonts
The Master Packager Tool is an application packaging tool used to Create and Edit Microsoft Windows Installer (MSI) files. In the following steps, we will learn how to package custom font files into the .MSI installer file. Subsequently, we can deploy this MSI installer to install our custom font files on Windows 10 and 11 devices.
This method is ideal if you prefer not to use PowerShell scripts and seek a straightforward way to deploy font files. Additionally, it offers the flexibility to easily edit the MSI file, allowing you to add or remove font files from the package.
For detailed information and a step-by-step guide on deploying fonts via Intune using the Master Packager Tool, refer to the link: Simplify Fonts Deployment in Intune: 3 Methods.
Method 3 – Using Powershell Script to Deploy Fonts
The last method involves deploying font files using a PowerShell script through the Intune admin center. Follow the steps below:
- Download the Powershell script from my Github Repo: InstallFonts.ps1
- Modify the script to download the fonts from the Internet or a shared location.
- Deploy the Powershell script using the reference guide: How to deploy a PowerShell script using Intune.
Sync Intune Policies
The device check-in process might not begin immediately. If you’re testing this policy on a test device, you can manually kickstart Intune sync from the device itself or remotely through the Intune admin center.
Alternatively, you can use PowerShell to force the Intune sync on Windows devices. Restarting the device is another way to trigger the Intune device check-in process.
End user Experience
After the deployment, Fonts will be installed silently in the background on the user’s devices. Users may see a pop-up notification related to the deployment, which is configurable using the Show all toast notifications setting.
1. Verifying fonts installation from C:\windows\fonts directory
As we have deployed below 4 fonts on the devices, Let’s verify if the fonts are installed on target devices successfully. Login on one of the target devices and follow the below steps:
- Go to the folder C:\windows\fonts and check the font files.
- Alata-Regular.ttf
- Monda-Bold.ttf
- Monda-Regular.ttf
- Paprika-Regular.ttf
2. Verifying fonts Installation using Registry Editor
You can also verify the installation of fonts from the registry editor, by using below steps:
- Press Win + R to open a Run dialog box.
- Type
regedit
and press Enter. - Browse to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts and search for the Font names on the right-hand side to ensure the deployed fonts entries exist.
3. Verify the fonts Installation using Microsoft Word
You can launch one of the Microsoft Office applications, e.g., Word, and confirm if the font is showing in the list. This will also confirm the font has been deployed successfully via Intune.
4. Verify the fonts Installation using IntuneManagementExtension Logs file
You can verify the font installation using the IntuneManagementExtension log file as well. Go to C:\ProgramData\Microsoft\IntuneManagementExtension\Logs and open the most recent IntuneManagementExtention.log file.
Search for the app name or PowerShell script name (Installfonts.ps1) to find the log related to Font Installation deployment.
How to Uninstall fonts using Intune
Using the same fonts deployment created in previous steps, we can remove these fonts from the devices. We have already configured powershell.exe -Executionpolicy Bypass -File .\Uninstallfonts.ps1 command in the Program tab while creating the deployment.
Please note you can uninstall the same fonts deployed using Intune, as the font files are contained in the .intunewin file. As we deployed 4 fonts using intune Alata-Regular.ttf, Monda-Bold.ttf, Monda-Regular.ttf, Paprika-Regular.ttf, we can uninstall these fonts using below steps:
- From the Intune admin center > Apps > All apps.
- Click on your fonts deployment app.
- Click on Properties under Manage.
- Scroll down to find Assignments and click on Edit next to it.
To uninstall these fonts from the devices, remove the devices from the required list and include them in the uninstall section.
I have tried through Win32, and it worked fine.
Thanks
I can confirm that the Win32 option works without issues