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 Включим выполнение сценариев

Установка шрифтов через GPO для Windows 8,10:

1.4 Для добавления файла скрипта необходимо перейти к настройке объекта политики:

Установка шрифтов через GPO для Windows 8,10:

1.4.1 Во вкладке Сценарии PowerShell, переходим в Показать файлы

Установка шрифтов через GPO для Windows 8,10:

После перехода, откроется директория DNS имя контроллера домена\SysVol. Перейдем в DNS_имя_контроллера_домена\SysVol\DNS_имя_контроллера домена\scripts\ и поместим скрипт fonts.ps1, указывая в Свойствах – Безопасность группу на распространяемые ПК и выдаём права на чтение и выполнение.

1.4.2 Создадим в Автозагрузке сценарий PowerShell, нажав Добавить и указывая в Имя сценария путь DNS_имя_контроллера_домена\SysVol\DNS_имя_контроллера домена\scripts\fonts.ps1

1.4.3 Ожидаем обновления политики или командой в командной строке gpupdate /force обновляем в ручном режиме. Для проверки выполнения политики в PowerShell выполните команду:

GetContent C:\Windows\fontinstall.log