How to list installed font families?
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:
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)
- Fonts Class (System.Windows.Media)
- FontFamily Class (System.Windows.Media)
- Using Static Classes and Methods - PowerShell
Related videos on Youtube
user327911
Updated on September 18, 2022Comments
-
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 almost 3 yearsYes 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 almost 3 yearsRunning 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 almost 3 yearsProduces a more complete list than the accepted answer
-
Mick almost 3 yearsarielCo'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 almost 3 yearsThis 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 about 2 yearsThis 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.