Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows Server

การติดตั้งฟอนต์ใน Windows โดยใช้ GPO และ PowerShell

ในบทความนี้ เราจะแสดงวิธีการติดตั้งแบบอักษรเพิ่มเติมบนคอมพิวเตอร์ในโดเมน Active Directory โดยใช้นโยบายกลุ่มและสคริปต์ PowerShell คู่มือนี้ได้รับการทดสอบกับ Windows 10 20H2 และ Windows Server 2016/2019 รุ่นปัจจุบัน

สารบัญ:

  • ปรับใช้แบบอักษรใหม่ผ่าน GPO
  • ติดตั้ง Windows Fonts โดยใช้ PowerShell Logon Script

การปรับใช้แบบอักษรใหม่ผ่าน GPO

หากคุณต้องการติดตั้งฟอนต์ใหม่หนึ่งหรือสองฟอนต์ คุณสามารถทำได้โดยใช้นโยบายกลุ่ม ในการติดตั้งแบบอักษร ให้คัดลอกไฟล์ *.ttf ไปที่ %WindowsDir%\Fonts\ บนคอมพิวเตอร์ไคลเอนต์และเพิ่มข้อมูลแบบอักษรใหม่ลงใน HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts รีจิสตรีคีย์

  1. คัดลอกไฟล์ฟอนต์ TTF ไปยังโฟลเดอร์เครือข่ายที่ใช้ร่วมกันบนเซิร์ฟเวอร์ไฟล์ของคุณ (หากคุณมีฟอนต์ใหม่เพียงบางส่วน คุณสามารถจัดเก็บไว้ในโฟลเดอร์ SYSVOL บนตัวควบคุมโดเมนของคุณ) การติดตั้งฟอนต์ใน Windows โดยใช้ GPO และ PowerShell
  2. เปิดคอนโซลการจัดการนโยบายกลุ่มของโดเมน (gpmc.msc ) สร้างนโยบายใหม่ GPO_InstallFonts และเชื่อมโยงไปยัง OU ด้วยคอมพิวเตอร์ การติดตั้งฟอนต์ใน Windows โดยใช้ GPO และ PowerShell
  3. แก้ไขนโยบาย
  4. สร้างกฎใหม่ใน Group Policy Preferences เพื่อคัดลอกไฟล์ฟอนต์จากโฟลเดอร์ที่ใช้ร่วมกันไปยัง %WindowsDir%\Fonts\ บนอุปกรณ์ไคลเอนต์ของคุณ ก่อนหน้านี้ เราได้แสดงวิธีการคัดลอกไฟล์ไปยังคอมพิวเตอร์โดยใช้ GPO สร้างนโยบายกลุ่มตามคำแนะนำเหล่านี้ ไปที่ การกำหนดค่าคอมพิวเตอร์ -> ค่ากำหนด -> การตั้งค่า Windows -> ไฟล์ . สร้างรายการนโยบายด้วยพารามิเตอร์ด้านล่าง:แหล่งที่มา:\\woshub.com\SYSVOL\woshub.com\scripts\Fonts\Roboto-Black.ttf
    ปลายทาง:  %WindowsDir%\Fonts\Roboto-Black.ttf

    การติดตั้งฟอนต์ใน Windows โดยใช้ GPO และ PowerShell

  5. ตอนนี้ คุณต้องเพิ่มข้อมูลเกี่ยวกับแบบอักษรใหม่ของคุณในรีจิสทรี หากต้องการเปลี่ยนแปลงรีจิสทรีโดยใช้ GPO คุณสามารถใช้ GPP (การกำหนดค่าคอมพิวเตอร์ -> ค่ากำหนด -> การตั้งค่า Windows -> รีจิสทรี)
  6. คุณสามารถระบุข้อมูลแบบอักษรในรีจิสทรีได้ด้วยตนเอง อย่างไรก็ตาม จะง่ายกว่าในการติดตั้งแบบอักษรด้วยตนเองบนคอมพิวเตอร์อ้างอิงและส่งออกการตั้งค่ารีจิสทรีแบบอักษรโดยใช้วิซาร์ด (การกำหนดค่าคอมพิวเตอร์ -> ค่ากำหนด -> การตั้งค่า Windows -> รีจิสทรี -> ใหม่ -> ตัวช่วยสร้างรีจิสทรี); การติดตั้งฟอนต์ใน Windows โดยใช้ GPO และ PowerShell
  7. ใช้ เบราว์เซอร์รีจิสทรี เพื่อไปที่ HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts reg บนคอมพิวเตอร์ระยะไกล ค้นหาและเลือกรายการรีจิสตรีที่มีชื่อฟอนต์ที่คุณต้องการติดตั้ง การติดตั้งฟอนต์ใน Windows โดยใช้ GPO และ PowerShell
  8. พารามิเตอร์รีจิสทรีจะปรากฏในตัวแก้ไข GPO

การติดตั้งฟอนต์ใน Windows โดยใช้ GPO และ PowerShell

จากนั้นอัปเดตการตั้งค่า GPO บนคอมพิวเตอร์ไคลเอนต์ และตรวจสอบให้แน่ใจว่าได้ติดตั้งไฟล์ฟอนต์ใหม่แล้ว ใน Windows 10 คุณสามารถดูรายการแบบอักษรที่ติดตั้งได้ในการตั้งค่า -> การตั้งค่าส่วนบุคคล -> แบบอักษร

การติดตั้งฟอนต์ใน Windows โดยใช้ GPO และ PowerShell

หากไม่ได้ติดตั้งไฟล์ฟอนต์ ตรวจสอบให้แน่ใจว่าได้กำหนดนโยบายให้กับคอมพิวเตอร์โดยใช้เครื่องมือ gpresult จากนั้นปฏิบัติตามวิธีปกติในการแก้ไขปัญหาเกี่ยวกับการใช้การตั้งค่า GPO กับคอมพิวเตอร์

ติดตั้งแบบอักษร Windows โดยใช้สคริปต์การเข้าสู่ระบบ PowerShell

ควรใช้วิธีการติดตั้งแบบอักษรโดยใช้ 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
}

การติดตั้งฟอนต์ใน Windows โดยใช้ GPO และ PowerShell

บันทึกสคริปต์ PowerShell เป็นไฟล์ PS1 และเรียกใช้เป็นสคริปต์การเข้าสู่ระบบโดยใช้ GPO

ดังนั้น ไฟล์ฟอนต์ทั้งหมดจากโฟลเดอร์ที่ระบุจะถูกติดตั้งใน Windows และวันที่และเวลาในการติดตั้งจะถูกบันทึก

การติดตั้งฟอนต์ใน Windows โดยใช้ GPO และ PowerShell

หากคุณต้องการลบแบบอักษรเพิ่มเติมทั้งหมดใน Windows และคืนค่าแบบอักษรเริ่มต้น ให้ทำตามคำแนะนำนี้