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:
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