এই আর্টিকেলে আমরা দেখাবো কিভাবে গ্রুপ পলিসি এবং PowerShell স্ক্রিপ্ট ব্যবহার করে একটি অ্যাক্টিভ ডিরেক্টরি ডোমেনের কম্পিউটারগুলিতে অতিরিক্ত ফন্ট ইনস্টল করতে হয়। এই গাইডটি Windows 10 20H2 এবং Windows Server 2016/2019 বিল্ডে পরীক্ষা করা হয়েছে।
GPO এর মাধ্যমে নতুন ফন্ট স্থাপন
যদি আপনি এক বা দুটি নতুন ফন্ট ইনস্টল করতে চান, তবে আপনি গ্রুপ পলিসি ব্যবহার করে এটি করতে পারেন। একটি ফন্ট ইনস্টল করতে, একটি *.ttf ফাইল ক্লায়েন্ট কম্পিউটারের %WindowsDir%\Fonts\ এ কপি করুন এবং নতুন ফন্টের তথ্য HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts রেজিস্ট্রি কী-তে যোগ করুন।
- TTF ফন্ট ফাইলটি আপনার ফাইল সার্ভারের একটি শেয়ার্ড নেটওয়ার্ক ফোল্ডারে কপি করুন (যদি আপনার पास কিছু নতুন ফন্ট থাকে, তবে আপনি সেগুলি আপনার ডোমেন কন্ট্রোলারের SYSVOL ফোল্ডারে সংরক্ষণ করতে পারেন);

- ডোমেন গ্রুপ পলিসি ম্যানেজমেন্ট কনসোল (
gpmc.msc) খুলুন, একটি নতুন পলিসি GPO_InstallFonts তৈরি করুন এবং এটি কম্পিউটারগুলোর OU এর সাথে লিংক করুন;
- পলিসিটি এডিট করুন;
- গ্রুপ পলিসি প্রেফারেন্সে একটি নতুন নিয়ম তৈরি করুন যাতে শেয়ার্ড ফোল্ডার থেকে ফন্ট ফাইলটি ক্লায়েন্ট ডিভাইসের
%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
- এখন আপনাকে রেজিস্ট্রিতে আপনার নতুন ফন্ট সম্পর্কে তথ্য যোগ করতে হবে। GPO ব্যবহার করে রেজিস্ট্রিতে পরিবর্তন আনার জন্য আপনি GPP ব্যবহার করতে পারেন (Computer Configuration -> Preferences -> Windows Settings -> Registry);
- আপনি ম্যানুয়ালি রেজিস্ট্রিতে ফন্টের তথ্য নির্দিষ্ট করতে পারেন। তবে, একটি রেফারেন্স কম্পিউটারে ফন্টটি ম্যানুয়ালি ইনস্টল করে এবং একটি উইজার্ড ব্যবহার করে ফন্ট রেজিস্ট্রি সেটিংস এক্সপোর্ট করা সহজ (Computer Configuration -> Preferences -> Windows Settings -> Registry -> New -> Registry Wizard);

- Registry Browser ব্যবহার করে একটি রিমোট কম্পিউটারের HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts রেজিস্ট্রি কী-তে যান। আপনি যে ফন্টটি ইনস্টল করতে চান তার নাম ধারণকারী রেজিস্ট্রি আইটেমটি খুঁজে বের করুন এবং সিলেক্ট করুন;

- রেজিস্ট্রি প্যারামিটারটি GPO এডিটরে দেখাবে।

তারপর ক্লায়েন্ট কম্পিউটারে GPO সেটিংস আপডেট করুন এবং নিশ্চিত করুন যে নতুন ফন্ট ফাইলটি ইনস্টল হয়েছে। Windows 10-এ, আপনি Settings -> Personalization -> Fonts-এ যেতে ইনস্টল করা ফন্টের তালিকা দেখতে পারেন।

যদি ফন্ট ফাইলটি ইনস্টল না হয়, তবে নিশ্চিত করুন যে ppresult টুল ব্যবহার করে পলিসিটি কম্পিউটারে অ্যাসাইন করা হয়েছে। তারপর কম্পিউটারগুলিতে GPO সেটিংস প্রয়োগে সমস্যা সমাধানের সাধারণ পদ্ধতি অনুসরণ করুন।
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
}

PowerShell স্ক্রিপ্টটি PS1 ফাইল হিসেবে সংরক্ষণ করুন এবং GPO ব্যবহার করে লগ অন স্ক্রিপ্ট হিসেবে চালান।
এইভাবে, নির্দিষ্ট ফোল্ডার থেকে সব ফন্ট ফাইল উইন্ডোজে ইনস্টল হবে এবং ইনস্টলেশন তারিখ ও সময় লগ হবে।

যদি আপনাকে উইন্ডোজে সব অতিরিক্ত ফন্ট মুছে ডিফল্ট ফন্টগুলো ফেরাতে হয়, তবে এই গাইডটি অনুসরণ করুন।