কম্পিউটার টিউটোরিয়াল

AD ফটো ব্যবহার করে উইন্ডোজ ১০-এ ইউজার প্রোফাইল ছবি সেট করা

Outlook, SharePoint, Skype for Business, Office365 এবং অন্যান্য মাইক্রোসফট অ্যাপ্লিকেশন বর্তমান লগ-ইন করা ব্যবহারকারীর অ্যাক্টিভ ডিরেক্টরি (বা Azure AD) ফটো তাদের ইন্টারফেসে ইউজার অবতার হিসেবে ব্যবহার করার অনুমতি দেয়। এই নিবন্ধে, আমরা দেখাব কিভাবে গ্রুপ পলিসি এবং পাওয়ারশেল স্ক্রিপ্ট ব্যবহার করে অ্যাক্টিভ ডিরেক্টরি থেকে ব্যবহারকারীর ফটো উইন্ডোজ ১০-এ ইউজার প্রোফাইল ছবি (অভাটার) হিসেবে সেট করতে হয় (উইন্ডোজ প্রোফাইল ছবি লক স্ক্রিন, ওয়েলকাম স্ক্রিন, স্টার্ট মেনু ইত্যাদিতে দেখানো হয়)।

আমাদের স্ক্রিপ্ট নিচেরভাবে কাজ করবে: যখন একজন ব্যবহারকারী উইন্ডোজ ১০-এ লগ অন করবে, একটি পাওয়ারশেল স্ক্রিপ্ট চালু হবে; এটি Active Directory-এ thumbnailPhoto ব্যবহারকারী অ্যাট্রিবিউট থেকে ব্যবহারকারীর ফটো নিয়ে, ইমেজ ফাইল লোকাল ড্রাইভে সংরক্ষণ করবে এবং এই ফাইলটি বর্তমান প্রোফাইলে ব্যবহারকারী অ্যাকাউন্ট ছবি হিসেবে সেট করবে। সমাধানটি সকল সাপোর্টেড ক্লায়েন্টে কাজ করা উচিত: Windows 10, 8.1, 7 এবং Windows Server 2016/2012 R2-এ চলমান RDS হোস্ট।

অ্যাক্টিভ ডিরেক্টরি ব্যবহারকারীর জন্য ফটো সেট করা

সबसे প্রথমে, থার্ড-পার্টি টুল বা Windows PowerShell-এর জন্য ActiveDirectory মডিউল ব্যবহার করে ইমেজ ফাইলগুলো thumbnailPhoto ব্যবহারকারী অ্যাট্রিবিউটে আপলোড করে AD ব্যবহারকারীদের জন্য ফটো সেট করুন। দ্রষ্টব্য করুন যে সর্বোচ্চ অবতার ইমেজ ফাইলের আকার ১০০ KB-র বেশি হলে না এবং ইমেজ রেজোলিউশন ৯৬ × ৯৬ পিক্সেল পর্যন্ত। jchan ব্যবহারকারীর AD অ্যাকাউন্ট ইমেজ সেট করতে পারেন এইভাবে:

$photo = [byte[]](Get-Content C:\PS\jchan_photo.jpg -Encoding byte)
Set-ADUser jchan -Replace @{thumbnailPhoto=$photo}

আমরা পাওয়ারশেল ব্যবহার করে AD ব্যবহারকারী ফটো পরিচালনা করার বিস্তারিত আলোচনা করেছি "How to Import User Photo to Active Directory" নিবন্ধে।

উইন্ডোজে প্রোফাইল ছবি পরিবর্তনের জন্য ব্যবহারকারীদের পারমিশন দেয়া

উইন্ডোজ ১০-এ রেজিস্টরি কী HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users দিয়ে ব্যবহারকারী অ্যাকাউন্ট প্রোফাইল ছবি সেট করা যায়। তবে, নন-অ্যাডমিন ব্যবহারকারীদের এই রেজিস্টরি কীতে ভ্যালু যোগ করার প্রয়োজনীয় পারমিশন নেই। অ্যাডমিনিস্ট্রেটর প্রিভিলেজ ছাড়া ব্যবহারকারীদের প্রোফাইল ছবি পরিবর্তন করতে দিতে, আপনাকে এই রেজিস্টরি কীতে রাইট পারমিশন দিতে হবে।

AD ডোমেনে রেজিস্টরি কী পারমিশন ডিপ্লয় করা GPO ব্যবহার করে সহজ:

  1. Group Policy Management কনসোল (gpmc.msc) চালু করুন, একটি নতুন পলিসি তৈরি করুন এবং ব্যবহারকারীদের কম্পিউটারের OU-এর সাথে লিংক করুন;
  2. তারপর GPO এডিটরে নিচের সেকশনে যান Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Registry এবং পথ MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users; সহ একটি নতুন রেজিস্টরি কী যোগ করুন (Add key);AD ফটো ব্যবহার করে উইন্ডোজ ১০-এ ইউজার প্রোফাইল ছবি সেট করা
  3. তারপর Security ট্যাবে, সকল ডোমেন ব্যবহারকারীর জন্য ([DomainName]\Users) Full Control পারমিশন চেক করুন এবং OK ক্লিক করুন;
  4. পরবর্তী উইন্ডোতে, Replace existing permission on all sub keys with inheritable permissions অপশন সিলেক্ট করুন, অন্যথায় ব্যবহারকারীদের নেস্টেড রেজিস্টরি সাবকী-গুলোতে কোনো প্রিভিলেজ থাকবে না।AD ফটো ব্যবহার করে উইন্ডোজ ১০-এ ইউজার প্রোফাইল ছবি সেট করা

AD ব্যবহারকারীর ফটো পাওয়া এবং উইন্ডোজ ১০-এ ইউজার প্রোফাইল ছবি সেট করার পাওয়ারশেল স্ক্রিপ্ট

তারপর আমাদের একটি পাওয়ারশেল স্ক্রিপ্ট চালাতে হবে যা বর্তমান ব্যবহারকারীর ফটো Active Directory থেকে নিয়ে, একটি jpg ফাইলে সংরক্ষণ করবে এবং এটি উইন্ডোজ ব্যবহারকারী প্রোফাইল ছবি হিসেবে সেট করবে। AD থেকে ব্যবহারকারীর ফটো পাওয়ার দুটি উপায় আছে। আপনি ActiveDirectory মডিউল থেকে Get-ADUser কম্ডলেট ব্যবহার করতে পারেন (এই মডিউল সব কম্পিউটারে RSAT経由で ইনস্টল করা থাকতে হবে, অথবা আপনি শুধু RSAT-AD-PowerShell মডিউল ফাইলগুলো কপি করতে পারেন RSAT ইনস্টল না করেই)। যেহেতু স্ক্রিপ্টটি সার্বজনীন হতে হবে এবং উইন্ডোজ ৭-এও কাজ করতে হবে, আমরা RSAT-AD-PowerShell মডিউল ব্যবহার করব না, বরং ADSISearcher C# ক্লাস দিয়ে AD এক্সেস করব।

SetADPicture.ps1 স্ক্রিপ্টের একটি উদাহরণ নিচে দেওয়া হলো যা AD থেকে ব্যবহারকারীর ফটো নিয়ে উইন্ডোজ অ্যাকাউন্ট অভাটার ছবি হিসেবে সেট করে:

[CmdletBinding(SupportsShouldProcess=$true)]Param()
function Test-Null($InputObject) { return !([bool]$InputObject) }
$ADuser = ([ADSISearcher]"(&(objectCategory=User)(SAMAccountName=$env:username))").FindOne().Properties
$ADuser_photo = $ADuser.thumbnailphoto
$ADuser_sid = [System.Security.Principal.WindowsIdentity]::GetCurrent().User.Value
If ((Test-Null $ADuser_photo) -eq $false) {
$img_sizes = @(32, 40, 48, 96, 192, 200, 240, 448)
$img_mask = "Image{0}.jpg"
$img_base = "C:\Users\Public\AccountPictures"
$reg_base = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\{0}"
$reg_key = [string]::format($reg_base, $ADuser_sid)
$reg_value_mask = "Image{0}"
If ((Test-Path -Path $reg_key) -eq $false) { New-Item -Path $reg_key }
Try {
ForEach ($size in $img_sizes) {
$dir = $img_base + "\" + $ADuser_sid
If ((Test-Path -Path $dir) -eq $false) { $(mkdir $dir).Attributes = "Hidden" }
$file_name = ([string]::format($img_mask, $size))
$path = $dir + "\" + $file_name
Write-Verbose " saving: $file_name"
$ADuser_photo | Set-Content -Path $path -Encoding Byte -Force
$name = [string]::format($reg_value_mask, $size)
$value = New-ItemProperty -Path $reg_key -Name $name -Value $path -Force
}
}
Catch {
Write-Error "Check permissions to files or registry."
}
}

স্ক্রিপ্টটি বর্তমান AD ব্যবহারকারীর thumbnailphoto অ্যাট্রিবিউটের মান নিয়ে লোকাল ফোল্ডার C:\Users\Public\AccountPictures\{User SID}-এ সংরক্ষণ করে। ফোল্ডারে বিভিন্ন রেজোলিউশনের ছবি ফাইল থাকবে (৩২×৩২ থেকে ৪৪৮×৪৪৮ পিক্সেল) উইন্ডোজ ১০ ইন্টারফেসের বিভিন্ন এলিমেন্টের জন্য: image32.jpg, image40.jpg, ইত্যাদি।

AD ফটো ব্যবহার করে উইন্ডোজ ১০-এ ইউজার প্রোফাইল ছবি সেট করা

ফটো ব্যবহারকারীর প্রোফাইলের সাথে বাঁধা হয় রেজিস্টরি কী HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\{User_SID}-এ প্যারামিটার দিয়ে।

AD ফটো ব্যবহার করে উইন্ডোজ ১০-এ ইউজার প্রোফাইল ছবি সেট করা

GPO ব্যবহার করে ফটো প্রোফাইলের সাথে বাঁধার জন্য পাওয়ারশেল স্ক্রিপ্ট চালানো

এখন আমরা চাই যখন ব্যবহারকারী উইন্ডোজে লগ অন করবে তখন SetADPicture.ps1 স্ক্রিপ্ট চালানো হয়। এটি GPO লগ অন স্ক্রিপ্ট ব্যবহার করে সহজে করা যায়।

এজন্য, আগে তৈরি করা পলিসিতে User Configuration -> Policies -> Windows Settings -> Scripts (Logon/Logoff) সেকশনে একটি নতুন পাওয়ারশেল লগ অন স্ক্রিপ্ট তৈরি করুন:

  • স্ক্রিপ্টের নাম: %windir%\System32\WindowsPowerShell\v1.0\powershell.exe
  • স্ক্রিপ্ট প্যারামিটার: -Noninteractive -ExecutionPolicy Bypass -Noprofile -File %logonserver%\netlogon\script\SetADPicture.ps1

গুরুত্বপূর্ণ। SetADPicture.ps1 স্ক্রিপ্টটি আগে থেকেই ডোমেন কন্ট্রোলারের netlogon\script\ ফোল্ডারে কপি করা থাকতে হবে।

পলিসি সেটিংসে, GPO লুপব্যাক প্রসেসিং মোড সক্ষম করুন (Computer Configuration -> Administrative Templates -> System -> Group Policy -> Configure user Group Policy Loopback Processing mode = Merge)। এই মোডে, আপনি ব্যবহারকারী অ্যাকাউন্টের OU-তে পলিসি প্রয়োগ করতে পারবেন।AD ফটো ব্যবহার করে উইন্ডোজ ১০-এ ইউজার প্রোফাইল ছবি সেট করা

আপনাকে শুধু পলিসিটি নির্দিষ্ট OU-গুলোর সাথে লিংক করে দিতে হবে, লগ অফ এবং আবার উইন্ডোজে লগ ইন করুন।

টার্গেট কম্পিউটারে GPO ডায়াগনোজ করতে gpresult টুল এবং "Group Policy not applying" নিবন্ধ ব্যবহার করুন।

AD ফটো ব্যবহার করে উইন্ডোজ ১০-এ ইউজার প্রোফাইল ছবি সেট করা

একটি অবতার উইন্ডোজ ১০ ব্যবহারকারী প্রোফাইলে অ্যাসাইন হবে, এবং পরবর্তী লগইনের পর এটি সঠিকভাবে অ্যাকাউন্ট ছবি হিসেবে স্টার্ট মেনু, ওয়েলকাম স্ক্রিন এবং অন্যান্য জায়গায় প্রদর্শিত হবে। এই প্রোফাইল ফটো অ্যাসাইনমেন্ট গাইডটি উইন্ডোজ ১০ LTSC (1809)-এ টেস্ট করা হয়েছে।

  1. Windows 11 বা Windows 10-এ Emoji ব্যবহার করার উপায়

  2. Windows 10-এ Windows Live Photo Gallery ব্যবহার করার পদ্ধতি

  3. Windows 11-এ PowerToys মাস্টার করুন: সম্পূর্ণ গাইড

  4. উইন্ডোজ ১০ প্রোফাইল ফটো আপডেট: লোকাল অথবা মাইক্রোসফট অ্যাকাউন্ট গাইড