How to list installed font families?

23,271

Solution 1

In PowerShell you can get the Font families in two lines, one to load the .NET reflection and the second actually gets the font families:

[System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
(New-Object System.Drawing.Text.InstalledFontCollection).Families

The outlook looks similar to:

sample output

Solution 2

Installed fonts are listed in HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts so you can check it with regedit or just run the below command

reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /s

Alternatively run this in PowerShell

Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts'

This gives you the real font names along with their corresponding font files, unlike dir C:\windows\fonts\*.* which only lists font file names and you won't know what things like GenBkBasB.ttf or FRABKIT.TTF represent

Sample output:

PS C:\> reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /s `
| select -First 12

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
    Arial (TrueType)    REG_SZ    arial.ttf
    Arial Black (TrueType)    REG_SZ    ariblk.ttf
    Arial Bold (TrueType)    REG_SZ    arialbd.ttf
    Arial Bold Italic (TrueType)    REG_SZ    arialbi.ttf
    Arial Italic (TrueType)    REG_SZ    ariali.ttf
    Bahnschrift (TrueType)    REG_SZ    bahnschrift.ttf
    Calibri (TrueType)    REG_SZ    calibri.ttf
    Calibri Bold (TrueType)    REG_SZ    calibrib.ttf
    Calibri Bold Italic (TrueType)    REG_SZ    calibriz.ttf
    Calibri Italic (TrueType)    REG_SZ    calibrii.ttf
PS C:\> Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts' `
| select -First 12


Arial (TrueType)                                                      : arial.ttf
Arial Black (TrueType)                                                : ariblk.ttf
Arial Bold (TrueType)                                                 : arialbd.ttf
Arial Bold Italic (TrueType)                                          : arialbi.ttf
Arial Italic (TrueType)                                               : ariali.ttf
Bahnschrift (TrueType)                                                : bahnschrift.ttf
Calibri (TrueType)                                                    : calibri.ttf
Calibri Bold (TrueType)                                               : calibrib.ttf
Calibri Bold Italic (TrueType)                                        : calibriz.ttf
Calibri Italic (TrueType)                                             : calibrii.ttf
Calibri Light (TrueType)                                              : calibril.ttf
Calibri Light Italic (TrueType)                                       : calibrili.ttf
Cambria & Cambria Math (TrueType)                                     : cambria.ttc

Solution 3

Another way, using the PresentationCore assembly:

Add-Type -AssemblyName PresentationCore
[Windows.Media.Fonts]::SystemFontFamilies | Select-Object -Property Source

(tested on Windows 10)

Share:
23,271

Related videos on Youtube

user327911
Author by

user327911

Updated on September 18, 2022

Comments

  • user327911
    user327911 over 1 year

    How can I list the family names of installed fonts on Windows?

    Any command line utility or any registry paths?

  • Mick
    Mick almost 3 years
    Yes it produces a list. But there seems to be a disparity between what's listed by the powershell script and what's in the font GUI
  • Mick
    Mick almost 3 years
    Running this command on a machine produced 185 entries... whereas the list produced by the regex query supplied in phuclv's answer produces 338. And includes the fonts missing in the list produced by the above powershell query
  • Mick
    Mick almost 3 years
    Produces a more complete list than the accepted answer
  • Mick
    Mick almost 3 years
    arielCo's answer produced a very similar list but with 189 entries, including the fonts missing from the list produced by this command and what's in the Windows Font admin UI.
  • Mick
    Mick almost 3 years
    This answer produces the most complete list with all the variants e.g bold, italic etc... for just a (complete) list of font names use arielCo's answer
  • karatedog
    karatedog about 2 years
    This solution builds on the false expectation that every file in this directory is both: 1) a font file, 2) it is installed at the same time. I can copy a bunch of JPEGs to the C:\Windows\Fonts folder and nothing will happen. Also I can copy a font file to this folder and also nothing will happen as copying a file to this folder does not install the fonts. Installed fonts need to be queried from something that is registered and acts as a database. Like Registry.