Computer >> 컴퓨터 >  >> 시스템 >> Windows Server

GPO 및 PowerShell로 Windows에 글꼴 일괄 설치하는 방법

이 글에서는 그룹 정책(GPO)과 PowerShell 스크립트를 활용해 Active Directory 도메인 환경의 컴퓨터에 추가 글꼴을 설치하는 방법을 소개합니다. 이 가이드는 Windows 10 20H2와 Windows Server 2016/2019 최신 빌드에서 테스트되었습니다.

목차

  • GPO를 통한 새 글꼴 배포
  • PowerShell 로그온 스크립트로 Windows 글꼴 설치

GPO를 통한 새 글꼴 배포

설치할 글꼴이 한두 개라면 그룹 정책만으로도 충분히 처리할 수 있습니다. 글꼴을 설치하려면 *.ttf 파일을 클라이언트 컴퓨터의 %WindowsDir%\Fonts\ 폴더로 복사한 뒤, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts 레지스트리 키에 새 글꼴 정보를 추가해야 합니다.

  1. TTF 글꼴 파일을 파일 서버의 공유 네트워크 폴더에 복사합니다(새 글꼴이 몇 개뿐이라면 도메인 컨트롤러의 SYSVOL 폴더에 보관해도 됩니다). GPO 및 PowerShell로 Windows에 글꼴 일괄 설치하는 방법
  2. 도메인 그룹 정책 관리 콘솔(gpmc.msc)을 열고 새 정책 GPO_InstallFonts를 생성한 후 컴퓨터가 속한 OU에 연결합니다. GPO 및 PowerShell로 Windows에 글꼴 일괄 설치하는 방법
  3. 정책을 편집합니다.
  4. 그룹 정책 기본 설정(GPP)에서 새 규칙을 만들어 공유 폴더의 글꼴 파일을 클라이언트 장치의 %WindowsDir%\Fonts\로 복사합니다. GPO로 컴퓨터에 파일을 복사하는 방법은 이전에 소개한 절차를 따르면 됩니다. Computer Configuration -> Preferences -> Windows Settings -> Files로 이동해 아래 매개변수로 정책 항목을 생성합니다.
    소스(Source): \\woshub.com\SYSVOL\woshub.com\scripts\Fonts\Roboto-Black.ttf
    대상(Destination): %WindowsDir%\Fonts\Roboto-Black.ttf
  5. 이제 새 글꼴 정보를 레지스트리에 추가해야 합니다. GPO로 레지스트리를 변경할 때도 GPP를 사용할 수 있습니다(Computer Configuration -> Preferences -> Windows Settings -> Registry).
  6. 레지스트리 값을 직접 입력할 수도 있지만, 기준(reference) 컴퓨터에 글꼴을 수동으로 설치한 후 마법사를 이용해 글꼴 레지스트리 설정을 내보내는 것이 더 간편합니다(Computer Configuration -> Preferences -> Windows Settings -> Registry -> New -> Registry Wizard). GPO 및 PowerShell로 Windows에 글꼴 일괄 설치하는 방법
  7. 레지스트리 브라우저를 사용해 원격 컴퓨터의 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts 키로 이동합니다. 설치하려는 글꼴 이름이 포함된 레지스트리 항목을 찾아 선택합니다. GPO 및 PowerShell로 Windows에 글꼴 일괄 설치하는 방법
  8. 해당 레지스트리 매개변수가 GPO 편집기에 나타납니다.

GPO 및 PowerShell로 Windows에 글꼴 일괄 설치하는 방법

이후 클라이언트 컴퓨터에서 GPO 설정을 갱신하고 새 글꼴 파일이 정상적으로 설치되었는지 확인합니다. Windows 10에서는 설정 -> 개인 설정 -> 글꼴에서 설치된 글꼴 목록을 확인할 수 있습니다.

GPO 및 PowerShell로 Windows에 글꼴 일괄 설치하는 방법

글꼴 파일이 설치되지 않았다면 gpresult 도구를 사용해 해당 정책이 컴퓨터에 할당되었는지 확인한 후, 일반적인 GPO 적용 문제 해결 절차에 따라 원인을 파악하세요.

PowerShell 로그온 스크립트로 Windows 글꼴 설치

설치할 글꼴이 몇 개 안 될 때는 앞서 설명한 GPO 방식이 적합합니다. 반면 한 번에 많은 글꼴 파일을 설치해야 한다면, 글꼴마다 정책 항목을 일일이 만드는 것이 번거로울 수 있으므로 PowerShell 스크립트를 사용하는 것이 효율적입니다.

다음 PowerShell 스크립트는 지정된 공유 폴더에 있는 모든 *.ttf*.otf 글꼴 파일을 설치합니다. 또한 WriteLog 함수를 사용해 모든 작업 내역을 로그 파일에 기록합니다.

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 = "\\woshub.com\SYSVOL\woshub.com\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
}

GPO 및 PowerShell로 Windows에 글꼴 일괄 설치하는 방법

PowerShell 스크립트를 PS1 파일로 저장한 후, GPO를 통해 로그온 스크립트로 실행하도록 설정합니다.

이렇게 하면 지정된 폴더의 모든 글꼴 파일이 Windows에 설치되며, 설치 날짜와 시간이 로그에 자동으로 기록됩니다.

GPO 및 PowerShell로 Windows에 글꼴 일괄 설치하는 방법

Windows에서 추가로 설치한 모든 글꼴을 제거하고 기본 글꼴로 복원해야 하는 경우에는 관련 가이드를 참고하세요.