টাইম জোন, টাইম এবং ডেটসহ, কম্পিউটারের একটি ক্রিটিক্যাল প্যারামিটার। উইন্ডোজ এবং অ্যাপ্লিকেশনগুলো সঠিকভাবে কাজ করার জন্য টাইম জোন কম্পিউটারের জিওগ্রাফিক্যাল লোকেশন অনুযায়ী সেট করা থাকতে হবে। এই নিবন্ধে আমরা দেখব কিভাবে উইন্ডোজে GUI, কমান্ড প্রম্পট, PowerShell, এবং গ্রুপ পলিসি ব্যবহার করে টাইম জোন পরিবর্তন করতে হয়।
উইন্ডোজ ১০ এবং উইন্ডোজ সার্ভার ২০১৯/২০১৬-এ ডেট এবং টাইম জোন সেট করার জন্য নতুন Settings অ্যাপ ব্যবহার করা হয়। সিস্টেম ট্রে-এ ক্লক আইকনে রাইট-ক্লিক করে Adjust date/time সিলেক্ট করে টাইম জোন GUI-তে সেট করা যায়। ডিফল্টভাবে উইন্ডোজ অটোমেটিক্যালি টাইম জোন সিলেক্ট করার চেষ্টা করে (Set time zone automatically অপশন সক্রিয় থাকে)। আপনি এই অপশন ডিসেবল করে ড্রপ-ডাউন লিস্ট থেকে প্রয়োজনীয় টাইম জোন ম্যানুয়ালি সিলেক্ট করতে পারেন।


টিপ. উইন্ডোজে টাইম জোন সেটিংস পরিবর্তন করার জন্য ক্লাসিক "Date and Time" কন্ট্রোল প্যানেল অ্যাপলেটও ব্যবহার করা যায়। কমান্ড চালান timedate.cpl।

উইন্ডোজে ব্যবহারকারীদের টাইম জোন পরিবর্তন করার অনুমতি দেয়া বা বাধা দেওয়া
ডিফল্টভাবে, একজন ব্যবহারকারীকে টাইম জোন পরিবর্তন করার জন্য অ্যাডমিনিস্ট্রেটর পারমিশন দরকার নয় (ডেট/টাইম পরিবর্তনের বিপরীতে)। এই আচরণ Local Security Settings কনসোল (secpol.msc) ব্যবহার করে পরিবর্তন করা যায়। Security Settings → Local Policy → User Rights Assignment-এ যান। পলিসিটি বলা হয় Change the time zone। দেখুন, টাইম জোন সিস্টেম, অ্যাডমিনিস্ট্রেটর, এবং সব ব্যবহারকারী পরিবর্তন করতে পারে। ব্যবহারকারীদের টাইম জোন পরিবর্তন করতে বাধা দিতে এই পলিসির অ্যাকাউন্ট তালিকা থেকে Users গ্রুপ রিমুভ করুন।

উইন্ডোজ সার্ভারে, শুধু Local Service এবং অ্যাডমিনিস্ট্রেটরদের টাইম জোন পরিবর্তনের প্রিভিলেজ থাকে।
Hyper-V Server এবং Windows Server Core-এ, আপনি বিল্ট-ইন sconfig ইউটিলিটি ব্যবহার করে টাইম জোন সেট করতে পারেন।
TZUtil.exe: উইন্ডোজ ১০ CMD-এ টাইম জোন কীভাবে পরিবর্তন করবেন?
উইন্ডোজ ১১/১০/৮.১ এবং উইন্ডোজ সার্ভার ২০১৯/২০১৬/২০১২ R2-এ টাইম জোন পরিবর্তন করতে একটি বিশেষ কমান্ড-লাইন টুল tzutil.exe (Windows Time Zone Utility) ব্যবহার করা হয়। এটি প্রথম উইন্ডোজ ৭-এ প্রদর্শিত হয়েছিল। টুলটির এক্সিকিউটেবল ফাইল %WINDIR%\System32 ডিরেক্টরিতে থাকে।
চলুন TZUtil.exe টুলের ফিচার এবং ক্যাপাবিলিটি দেখি।
কমান্ড প্রম্পট (cmd.exe) চালান। বর্তমান টাইম জোন এবং এর আইডেন্টিফায়ার (TimeZoneID) জানতে কমান্ড চালান:
tzutil /g

এই উদাহরণে, Pacific Standard Time বর্তমান টাইম জোন আইডেন্টিফায়ার।
সব উপলব্ধ টাইম জোনের তালিকা দেখতে:
tzutil /l

বর্তমান উইন্ডোজে টাইম জোনের তালিকা মাইক্রোসফট থেকে এখানে পাওয়া যাবে: https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-time-zones.
দ্রুত সব উপলব্ধ টাইম জোন খুঁজে বের করতে (যেমন, UTC -6 অফসেটवाले), কমান্ড চালান:
tzutil /l | find /I "utc-06"

ব 현재의 টাইম জোন (UTC-05:00) Eastern Time (US & Canada)-এ পরিবর্তন করুন:
tzutil /s "Eastern Standard Time"

বর্তমান টাইম জোন উইন্ডোজ রেজিস্ট্রিতে সংরক্ষিত থাকে। এটি পরিবর্তন হয়েছে কিনা চেক করতে:
reg query HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation

নির্দিষ্ট টাইম জোনের জন্য ডেইলাইট সেভিং টাইম ডিসেবল করতে টাইম জোন আইডেন্টিফায়ারের সাথে _dstoff সফিক্স যোগ করুন, উদাহরণস্বরূপ:
tzutil /s “Central European Standard Time_dstoff”
এই কমান্ড কম্পিউটারের টাইম জোন পরিবর্তন করবে এবং সিজনাল ক্লক চেঞ্জ ডিসেবল করবে।
টাইম জোন এবং ডেইলাইট সেভিং টাইম সেটিংস সম্পর্কে সম্পূর্ণ তথ্য দেখতে:
w32tm /tz
Time zone: Current:TIME_ZONE_ID_UNKNOWN Bias: 480min (UTC=LocalTime+Bias) [Standard Name:"Pacific Standard Time" Bias:0min Date:(unspecified)] [Daylight Name:"Pacific Standard Time" Bias:0min Date:(unspecified)]

উইন্ডোজ XP এবং উইন্ডোজ সার্ভার ২০০৩-এ কমান্ড প্রম্পট থেকে টাইম জোন পরিবর্তন করতে নিচের কমান্ডগুলো ব্যবহার করা হতো:
RunDLL32.exe shell32.dll,Control_RunDLL timedate.cpl,,/Z Central America Standard Time
অথবা:
Control.exe TIMEDATE.CPL,,/Z Central America Standard Time
PowerShell দিয়ে উইন্ডোজ টাইম জোন সেট করা
PowerShell কনসোল থেকে বর্তমান টাইম জোন সেটিংস পাওয়া যায়। কমান্ড চালান:
[TimeZoneInfo]::Local
অথবা
Get-TimeZone
Id : Pacific Standard Time
DisplayName : (UTC-08:00) Pacific Time (US & Canada)
StandardName : Pacific Standard Time
DaylightName : Pacific Standard Time
BaseUtcOffset : -08:00:00
SupportsDaylightSavingTime : False

উইন্ডোজে উপলব্ধ সব টাইম জোন দেখতে PowerShell কমান্ড:
[System.TimeZoneInfo]::GetSystemTimeZones()
অথবা
Get-TimeZone -ListAvailable

টাইম জোনের তালিকা খুব লম্বা। প্রয়োজনীয় টাইম জোনের নাম খুঁজে বের করতে PowerShell ফিল্টারিং অপশন ব্যবহার করুন:
Get-TimeZone -ListAvailable | Where-Object {$_.displayname -like "*canada*"}
অথবা:
Get-TimeZone -ListAvailable | Where-Object {$_.Id -like "*euro*"}

সব টাইম জোন alfabetical অর্ডারে লিস্ট করতে:
Get-TimeZone -ListAvailable | Select Id | Sort Id
PowerShell থেকে বর্তমান টাইম জোন পরিবর্তন করতে কমান্ড চালান:
Set-TimeZone -Name "US Eastern Standard Time"
এই উদাহরণগুলো PowerShell ভার্সন 5.1-এ ব্যবহার করা হয়েছে, কিন্তু এগুলো নতুন ভার্সনগুলোটেও কাজ করে।
গ্রুপ পলিসি ব্যবহার করে টাইম জোন কনফিগার করা
এক্টিভ ডিরেক্টরি ডোমেনের কম্পিউটারগুলোর টাইম জোন কনফিগার করতে গ্রুপ পলিসি ব্যবহার করা যায়। GPO-তে টাইম জোন কনফিগার করার জন্য কোনো বিল্ট-ইন পলিসি প্যারামিটার নেই। GPO দিয়ে টাইম জোন সেট করার দুটি সবচেয়ে সাধারণ পদ্ধতি হল GPO লগ অন স্ক্রিপ্ট ব্যবহার করা বা রেজিস্ট্রিতে টাইম জোন সেটিংস ইম্পোর্ট করা।
GPO লগ অন স্ক্রিপ্ট দিয়ে টাইম জোন সেট করতে একটি সিম্পল PowerShell স্ক্রিপ্ট ব্যবহার করা যায় (এটি উইন্ডোজ XP এবং উইন্ডোজ সার্ভার ২০০৩ থেকে সব ভার্সনে কাজ করে):
$timeZone = "Central Europe Daylight Time"
$WinOSVerReg = Get-Item "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
$WinOSVer = $WinOSVerReg.GetValue("CurrentVersion")
if ($WinOSVer -GE 6){
tzutil.exe /s $timeZone
} Else {
$params = "/c Start `"Change timeZone`" /MIN %WINDIR%\System32\Control.exe TIMEDATE.CPL,,/Z "
$params += $timeZone
$proc = [System.Diagnostics.Process]::Start( "CMD.exe", $params )
}
অন্য একটি পদ্ধতি হল রেফারেন্স কম্পিউটার থেকে (যেখানে টাইম সেটিংস সঠিকভাবে কনফিগার করা আছে) HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation রেজিস্ট্রি কী-এর কন্টেন্ট অন্য কম্পিউটারগুলোর GPO-তে ইম্পোর্ট করা। এই নিবন্ধে বর্ণনা আছে রেজিস্ট্রি প্যারামিটার GPO-তে ইম্পোর্ট করার পদ্ধতি।
Registry Browser ব্যবহার করে এই রেজিস্ট্রি কী সকল প্যারামিটারসহ সিলেক্ট করুন। ফলে সব টাইম জোন সেটিংস GPO এডিটরে ইম্পোর্ট হয়ে যাবে (Computer Configuration → Preferences → Windows Settings → Registry)।

আপনি যদি ভিন্ন Active Directory সাইটের জন্য ভিন্ন টাইম জোন সেটিংস ব্যবহার করতে চান, তবে GPP Item Level Targeting ব্যবহার করে নির্দিষ্ট টাইম জোন সেটিংস নির্দিষ্ট AD সাইটে টার্গেট করুন।

আপনি যদি RDS ইনফ্রাস্ট্রাকচার ব্যবহার করেন, এবং ব্যবহারকারীরা ও RDSH সার্ভারগুলো ভিন্ন টাইম জোনে কনফিগার করা থাকে, তবে ব্যবহারকারীর RDP সেশনে সার্ভার টাইম দেখাবে। এটি অসুবিধাজনক। ব্যবহারকারীর লোকাল টাইম জোন RDP সেশনে রিডাইরেক্ট করতে Allow time zone redirection GPO প্যারামিটার ব্যবহার করুন (Computer Configuration → Policies → Administrative Templates → Windows Components → Remote Desktop Services → Remote Desktop Session Host → Device and Resource Redirection।
Windows Server 2019 / Windows 10-এ টাইম জোন পরিবর্তন করা যায় না: You Do Not Have Permission
Windows Server 2019 RTM এবং কিছু উইন্ডোজ ১০ বিল্ডে GUI দিয়ে টাইম জোন সেটিং-এ একটি বিরক্তিকর বাগ আছে। আপনি যদি মডার্ন Settings অ্যাপ বা ক্লাসিক কন্ট্রোল প্যানেল অ্যাপলেট থেকে টাইম জোন পরিবর্তন করার চেষ্টা করেন, তবে এরর আসে:
Date and time Unable to continue. You do not have permission to perform this task. Please contact your computer administrator for help.

প্রথমে নিশ্চিত করুন যে আপনি অ্যাডমিনিস্ট্রেটর প্রিভিলেজवाले অ্যাকাউন্ট দিয়ে উইন্ডোজে লগইন করেছেন এবং Administrators গ্রুপ Change Time Zone লোকাল সিকিউরিটি পলিসি সেটিংসে উপস্থিত।

ওয়ার্কঅראউন্ড হিসেবে, এই কেসে আপনাকে কমান্ড লাইন থেকে টাইম জোন পরিবর্তন করতে হবে:
tzutil /l
tzutil /s "Central Europe Standard Time"
অথবা PowerShell:
GetTimeZone -ListAvailable|? DisplayName -like "*Berlin*"|Set-TimeZone
আপনি যদি গ্রাফিক্যাল ইন্টারফেস থেকে টাইম জোন সেটিং পরিবর্তন করতে চান, তবে timedate.cpl অ্যাপলেট এলিভেটেড কমান্ড প্রম্পট থেকে চালান বা Server Manager (Local Server → Time zone) থেকে খুলুন।

Exchange (Microsoft 365) মেইলবক্সের টাইম জোন প্রথম কানেকশন সময় উইন্ডোজ ইউজার প্রোফাইল সেটিংস অনুযায়ী সেট হয়।