How to list installed font families?

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


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 represents

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

Another way, using the PresentationCore assembly:

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

(tested on Windows 10)

  • Fonts Class (System.Windows.Media)
  • FontFamily Class (System.Windows.Media)
  • Using Static Classes and Methods - PowerShell