-
-
Save anthonyeden/0088b07de8951403a643a8485af2709b to your computer and use it in GitHub Desktop.
# Run this as a Computer Startup script to allow installing fonts from C:\InstallFont\ | |
# Based on http://www.edugeek.net/forums/windows-7/123187-installation-fonts-without-admin-rights-2.html | |
# Run this as a Computer Startup Script in Group Policy | |
# Full details on my website - https://mediarealm.com.au/articles/windows-font-install-no-password-powershell/ | |
$SourceDir = "C:\InstallFont\" | |
$Source = "C:\InstallFont\*" | |
$Destination = (New-Object -ComObject Shell.Application).Namespace(0x14) | |
$TempFolder = "C:\Windows\Temp\Fonts" | |
# Create the source directory if it doesn't already exist | |
New-Item -ItemType Directory -Force -Path $SourceDir | |
New-Item $TempFolder -Type Directory -Force | Out-Null | |
Get-ChildItem -Path $Source -Include '*.ttf','*.ttc','*.otf' -Recurse | ForEach { | |
If (-not(Test-Path "C:\Windows\Fonts\$($_.Name)")) { | |
$Font = "$TempFolder\$($_.Name)" | |
# Copy font to local temporary folder | |
Copy-Item $($_.FullName) -Destination $TempFolder | |
# Install font | |
$Destination.CopyHere($Font,0x10) | |
# Delete temporary copy of font | |
Remove-Item $Font -Force | |
} | |
} |
@Sansoria thank you so much! This is exactly what I was looking for, a small code that fits perfectly in a function (plus it works better than others I had found). Tested on Windows 10 Pro 20H2 x64, installs fonts system wide and shows them in Settings and Control Panel.
Also may I suggest you an improvement, although I'm new to PowerShell:
when executing New-ItemProperty
, use $null = New-ItemProperty ...
instead of New-ItemProperty ... | Out-Null
for better performance.
Source: https://powershell-guru.com/powershell-best-practice-12-avoid-out-null/
Thanks again, I wish you a great day :)
I've taken some of the work in this thread along with my own work. It's aimed at storing the fonts in a zip file on a file server share in each AD site and copying the zip file of the font(s) locally then expanding it.
https://gist.github.com/cosine83/e83c44878a6bdeac0c7c59e3dbfd1f71
nice stript dude. It's funny I just showed this to a designer and it blew his mind as the fonts just get installed one by one! I love coding!
The solution I finally found to install fonts system wide was:
...
That's clearly not right, since it will set the $FontType to '(TrueType)' the first time it encounters a TrueType font, and never changes it again for anything that comes after.
The solution I finally found to install fonts system wide was: