Install a Font to the Windows Font Library

  • 29 April 2021
  • 5 replies
  • 303 views

Userlevel 5

This worklet will add a TTF or OTF font to your Windows font library. Just upload the .ttf or .otf file to the worklet and set $font to the name of the uploaded font file in the evaluation and remediation.


Evaluation:


$font = "NAME_OF_FONT.ttf"

If (Test-Path "c:\windows\fonts\$($font)") { Exit 0 } else { Exit 1 }

Remediation:


$font = "NAME_OF_FONT.ttf"

try {
If (!(Test-Path "c:\windows\fonts\$($font)")) {
switch (($font -split "\.")[-1]) {
"TTF" {
$fn = "$(($font -split "\.")[0]) (TrueType)"
break
}
"OTF" {
$fn = "$(($font -split "\.")[0]) (OpenType)"
break
}
}
Copy-Item $font -Destination "C:\Windows\Fonts\$font" -Force
New-ItemProperty -Name $fn -Path "HKLM:\Software\Microsoft\Windows NT\CurrentVersion\Fonts" -PropertyType string -Value $font
}
}
catch {
write-warning $_.exception.message
}

5 replies

@Tony Thanks! This is awesome!

Badge

Hi @Tony,


Thanks for this worklet. I wonder if you have for MacOS version for installing font.


cc: @automoxsupport


Best,

Ulyssis

Thank you,


Tony, I need one more help. I have 20 other fonts, how can I add this to worklet.

Hello,


I need your help with when trying this I am getting WARNING: Cannot bind argument to parameter ‘Name’ because it is null.


$font = “‘EncodeSans-Black.ttf’,‘EncodeSans-Bold.ttf’,‘EncodeSansCondensed-Black.ttf’,‘EncodeSansCondensed-Bold.ttf’,‘EncodeSansCondensed-ExtraBold.ttf’,‘EncodeSansCondensed-ExtraLight.ttf’,‘EncodeSansCondensed-Light.ttf’,‘EncodeSansCondensed-Medium.ttf’

,‘EncodeSansCondensed-Regular.ttf’,‘EncodeSansCondensed-SemiBold.ttf’,‘EncodeSans-ExtraBold.ttf’,‘EncodeSans-ExtraLight.ttf’,‘EncodeSans-Light.ttf’,‘EncodeSans-Medium.ttf’,‘EncodeSans-Regular.ttf’,‘EncodeSans-SemiBold.ttf’,‘EncodeSans-Thin.ttf’”


try {
If (!(Test-Path "c:\windows\fonts\$($font)")) {
switch (($font -split "\.")[-1]) {
"TTF" {
$fn = "$(($font -split "\.")[0]) (TrueType)"
break
}
"OTF" {
$fn = "$(($font -split "\.")[0]) (OpenType)"
break
}
}
Copy-Item $font -Destination "C:\Windows\Fonts\$font" -Force
New-ItemProperty -name $fn -Path "HKLM:\Software\Microsoft\Windows NT\CurrentVersion\Fonts" -PropertyType string -Value $font
}
}
catch {
write-warning $_.exception.message
}

if you can help that would be great.

Userlevel 3
Badge

Holy thread resurrection!

Don’t suppose anyone knows how to install multiple fonts in once script?

Reply