1. Создадим файл скрипта установки шрифтов
1.1 Содержимое файла fonts.ps1
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\fontinstall.log" $SourceFolder = "путь" 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 }
Примечание:
В пункте $SourceFolder = «путь» необходимо вместо «путь» указать адрес к расположению шрифтов, предварительно поместить файлы .ttf .otf (шрифтов) в данную директорию.
1.2 К директории, где расположен скрипт должен быть предоставлен доступ на все используемые ПК для распространения по GPO.
1.3 Включим выполнение сценариев
1.4 Для добавления файла скрипта необходимо перейти к настройке объекта политики:
1.4.1 Во вкладке Сценарии PowerShell, переходим в Показать файлы
После перехода, откроется директория DNS имя контроллера домена\SysVol. Перейдем в DNS_имя_контроллера_домена\SysVol\DNS_имя_контроллера домена\scripts\ и поместим скрипт fonts.ps1, указывая в Свойствах – Безопасность группу на распространяемые ПК и выдаём права на чтение и выполнение.
1.4.2 Создадим в Автозагрузке сценарий PowerShell, нажав Добавить и указывая в Имя сценария путь DNS_имя_контроллера_домена\SysVol\DNS_имя_контроллера домена\scripts\fonts.ps1
1.4.3 Ожидаем обновления политики или командой в командной строке gpupdate /force обновляем в ручном режиме. Для проверки выполнения политики в PowerShell выполните команду:
Get—Content C:\Windows\fontinstall.log