GPO ve PowerShell Kullanarak Windows'ta Yazı Tiplerini Yükleme
Bu yazıda, Grup İlkesi ve PowerShell komut dosyası kullanılarak bir Active Directory etki alanındaki bilgisayarlara ek yazı tiplerinin nasıl yükleneceğini göstereceğiz. Bu kılavuz, mevcut Windows 10 20H2 ve Windows Server 2016/2019 yapılarında test edilmiştir.
GPO aracılığıyla Yeni Yazı Tiplerini Dağıtma
Bir veya iki yeni yazı tipi yüklemek istiyorsanız, bunu Grup İlkesi'ni kullanarak yapabilirsiniz. Bir yazı tipi yüklemek için bir *.ttf dosyasını bir istemci bilgisayarda %WindowsDir%\Fonts\ konumuna kopyalayın ve yeni yazı tipi bilgilerini HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion klasörüne ekleyin. \Fonts kayıt defteri anahtarı.
TTF yazı tipi dosyasını dosya sunucunuzdaki paylaşılan bir ağ klasörüne kopyalayın (yalnızca bazı yeni yazı tipleriniz varsa, bunları etki alanı denetleyicinizdeki SYSVOL klasöründe saklayabilirsiniz);
Etki alanı Grup İlkesi Yönetim konsolunu açın (
gpmc.msc), yeni bir GPO_InstallFonts ilkesi oluşturun ve bunu bilgisayarlarla kuruluş birimine bağlayın;
Politikayı düzenleyin;
Yazı tipi dosyasını paylaşılan klasörden şuraya kopyalamak için Grup İlkesi Tercihlerinde yeni bir kural oluşturun:
%WindowsDir%\Fonts\istemci cihazlarınızda. Daha önce GPO kullanarak bir dosyanın bilgisayarlara nasıl kopyalanacağını gösterdik. Bu talimatları izleyerek bir grup ilkesi oluşturun. Bilgisayar Yapılandırması -> Tercihler -> Windows Ayarları -> Dosyalar'a gidin. Aşağıdaki parametrelerle bir ilke girişi oluşturun:Kaynak:
\\a-d.site\SYSVOL\a-d.site\scripts\Fonts\Roboto-Black.ttfVarış noktası:
%WindowsDir%\Fonts\Roboto-Black.ttfŞimdi yeni yazı tipinizle ilgili bilgileri kayıt defterine eklemeniz gerekiyor. GPO kullanarak kayıt defterinde değişiklik yapmak için GPP'yi de kullanabilirsiniz (Bilgisayar Yapılandırması -> Tercihler -> Windows Ayarları -> Kayıt Defteri);
Yazı tipi bilgisini kayıt defterinde manuel olarak belirleyebilirsiniz. Ancak, bir fontu bir referans bilgisayara manuel olarak yüklemek ve bir sihirbaz (Bilgisayar Yapılandırması -> Tercihler -> Windows Ayarları -> Kayıt Defteri -> Yeni -> Kayıt Sihirbazı) kullanarak yazı tipi kayıt defteri ayarlarını dışa aktarmak daha kolaydır;
-
Uzak bir bilgisayarda HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts kayıt anahtarına gitmek için Kayıt Tarayıcısı'nı kullanın. Yüklemek istediğiniz yazı tipinin adını içeren kayıt defteri öğesini bulun ve seçin;
Kayıt defteri parametresi, GPO düzenleyicisinde görünecektir.
Ardından, istemci bilgisayardaki GPO ayarlarını güncelleyin ve yeni yazı tipi dosyasının yüklendiğinden emin olun. Windows 10'da, yüklü yazı tiplerinin listesini Ayarlar -> Kişiselleştirme -> Yazı Tipleri'nde görüntüleyebilirsiniz.
Yazı tipi dosyası yüklenmemişse, ilkenin bilgisayara gpresult aracı kullanılarak atandığından emin olun. Ardından, bilgisayarlara GPO ayarlarını uygulamayla ilgili sorunları gidermek için olağan yolu izleyin.
PowerShell Oturum Açma Komut Dosyasını Kullanarak Windows Yazı Tiplerini Yükleme
Yalnızca bazı yazı tiplerini yüklemek istiyorsanız, yukarıda açıklanan GPO'yu kullanarak yazı tipi yükleme yöntemini kullanmaya değer. Aynı anda çok sayıda yeni yazı tipi dosyası yüklemek istiyorsanız, her yazı tipi için özel ilke seçenekleri oluşturmak yorucu olabileceğinden, bir PowerShell betiği kullanmak daha iyidir.
Aşağıdaki PowerShell komut dosyası, belirtilen paylaşılan klasörde bulunan tüm *.ttf ve *.otf yazı tipi dosyalarını yükleyecektir. Ayrıca betik, WriteLog işlevini kullanarak tüm eylemleri günlük dosyasına yazar.
function WriteLog
{
Param ([string]$LogString)
$Stamp = (Get-Date).toString("yyyy/MM/dd HH:mm:ss")
$LogMessage = "$Stamp $LogString"
Add-content $LogFile -value $LogMessage
}
$Logfile = "C:\Windows\posh_font_install.log"
$SourceFolder = "\\a-d.site\SYSVOL\a-d.site\scripts\Fonts"
Add-Type -AssemblyName System.Drawing
$WindowsFonts = [System.Drawing.Text.PrivateFontCollection]::new()
Get-ChildItem -Path $SourceFolder -Include *.ttf, *.otf -Recurse -File |
Copy-Item -Destination "$env:SystemRoot\Fonts" -Force -Confirm:$false -PassThru |
ForEach-Object {
WriteLog "Installing font file $_.name"
$WindowsFonts.AddFontFile($_.fullname)
$RegistryValue = @{
Path = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts'
Name = $WindowsFonts.Families[-1].Name
Value = $_.Fullname
}
$RemoveRegistry = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts"
Remove-ItemProperty -name $($WindowsFonts.Families[-1].Name) -path $RemoveRegistry
New-ItemProperty @RegistryValue
}
PowerShell betiğini bir PS1 dosyası olarak kaydedin ve GPO kullanarak bir oturum açma betiği olarak çalıştırın.
Böylece, belirtilen klasördeki tüm yazı tipi dosyaları Windows'a yüklenecek ve yükleme tarihi ve saati günlüğe kaydedilecektir.
Windows'taki tüm ek yazı tiplerini kaldırmanız ve varsayılanları geri yüklemeniz gerekirse, bu kılavuzu izleyin.








