ইউজার অ্যাকাউন্ট কন্ট্রোল (User Account Control) উইন্ডোজ নিরাপত্তার একটি গুরুত্বপূর্ণ কম্পোনেন্ট। আপনি যখন কোনো অ্যাপ্লিকেশন বা প্রসেস চালান যেটি অ্যাডমিনিস্ট্রেটর প্রিভিলেজ চায়, সিস্টেম সেটিংস, প্রোটেক্টেড রেজিস্ট্রি কী বা সিস্টেম ফাইল পরিবর্তন করার চেষ্টা করলে, UAC কম্পোনেন্ট ডেস্কটপকে প্রোটেক্টেড মোডে (Secure Desktop) স্যুইচ করে এবং অ্যাডমিনিস্ট্রেটর থেকে এই অ্যাকশনগুলো কনফার্ম করতে বলে। এইভাবে, UAC প্রসেস এবং ম্যালওয়্যার লঞ্চ হওয়াকে বাধা দেয় যা সম্ভাব্যভাবে আপনার কম্পিউটারকে ক্ষতি করতে পারে।
নিচের স্ক্রিনশটে দেখানো হয়েছে যে উইন্ডোজ ১০-এ রেজিস্ট্রি এডিটর (regedit.exe) চালানোর চেষ্টা করলে একটি UAC কনফার্মেশন উইন্ডো আসে:
User Account Control Do you want to allow this app to make changes to your device?
UAC বিল্ট-ইন অ্যাডমিনিস্ট্রেটর অ্যাকাউন্টের জন্য সক্রিয় নেই, যা উইন্ডোজ ১০-এ ডিফল্টভাবে ডিজেবল থাকে।
এই লেখায়, আমরা দেখব কিভাবে একক কম্পিউটারে বা ডোমেনে একাধিক কম্পিউটারে গ্রুপ পলিসি ব্যবহার করে UAC সেটিংস ম্যানেজ করা যায়।
উইন্ডোজ ১০-এ ইউজার অ্যাকাউন্ট কন্ট্রোল স্লাইডার লেভেল
উইন্ডোজ ৭ (এবং নতুনতর) এ, কম্পিউটারের UAC সেটিংস একটি বিশেষ স্লাইডার দিয়ে ম্যানেজ করা হয় (কন্ট্রোল প্যানেল বা UserAccountControlSettings.exe ফাইল দিয়ে কল করা হয়)। স্লাইডার ব্যবহার করে আপনি চারটি প্রিডিফাইনড ইউজার অ্যাকাউন্ট কন্ট্রোল প্রোটেকশন লেভেল থেকে একটি বেছে নিতে পারেন।
- লেভেল ৪ — Always notify — সর্বোচ্চ UAC প্রোটেকশন লেভেল;
- লেভেল ৩ — Notify only when programs try to make changes to my computer (default) – ডিফল্ট প্রোটেকশন লেভেল;
- লেভেল ২ — Notify only when programs try to make changes to my computer (do not dim my desktop) – প্রায় পূর্বের লেভেলের মতো, কিন্তু Secure Desktop-এ ডেস্কটপ লক ছাড়া;
- লেভেল ১ — Never notify – UAC ডিজেবল।
উইন্ডোজ ১০-এ ডিফল্টভাবে UAC প্রোটেকশন লেভেল ৩ ব্যবহার করা হয়, যা সিস্টেম ফাইল বা সেটিংস পরিবর্তন করার চেষ্টা করলে নোটিফিকেশন দেখায়।
গ্রুপ পলিসি ব্যবহার করে উইন্ডোজে ইউজার অ্যাকাউন্ট কন্ট্রোল ডিজেবল করা
অধিকাংশ কেসে, UAC সম্পূর্ণরূপে ডিজেবল করা প্রস্তাবিত নয়। ইউজার অ্যাকাউন্ট কন্ট্রোল একটি সহজ কিন্তু কার্যকর উইন্ডোজ নিরাপত্তা টুল। আমার প্র্যাকটিসে, আমি কখনো UAC ব্যবহারকারীদের কম্পিউটারে ডিজেবল করি না নিশ্চিত না হওয়া পর্যন্ত যে UAC নির্দিষ্ট ফাংশন ব্লক করছে। এমন কেসগুলোর পরেও, কোনো স্পেসিফিক অ্যাপ্লিকেশনের জন্য UAC ডিজেবল করা বা অ্যাডমিন রাইটস ছাড়া অ্যাপ চালিয়ে UAC প্রম্পট সাপ্রেস করার সহজ ওয়ার্কঅরাউন্ড আছে।
আপনি গ্রুপ পলিসি ব্যবহার করে UAC ডিজেবল করতে পারেন। স্ট্যান্ডঅ্যালোন কম্পিউটারে, আপনি লোকাল গ্রুপ পলিসি এডিটর gpedit.msc ব্যবহার করতে পারেন। ডোমেন কম্পিউটারগুলিতে পলিসি ডিপ্লয় করতে হলে, গ্রুপ পলিসি ম্যানেজমেন্ট কনসোল — gpmc.msc ব্যবহার করতে হবে (এটি বিবেচনা করা যাক)।
- ডোমেন GPO ম্যানেজমেন্ট কনসোলে, যে OU-তে কম্পিউটারগুলো আছে যেখানে UAC ডিজেবল করতে চান সেটে ক্লিক করুন এবং একটি নতুন পলিসি অবজেক্ট তৈরি করুন;
- পলিসি এডিট করুন এবং যান Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Local Policies -> Security Options-এ;
- এই সেকশনে UAC সেটিংস কন্ট্রোলকারী বেশ কিছু অপশন আছে। এই প্যারামিটারগুলোর নাম User Account Control দিয়ে শুরু হয়;
- UAC সম্পূর্ণরূপে ডিজেবল করতে, নিচের প্যারামিটার মানগুলো সেট করুন:
- User Account Control: Behavior of the elevation prompt for administrators in Admin Approval Mode =
Elevate without prompting; - User Account Control: Detect application installations and prompt for elevation =
Disabled; - User Account Control: Run all administrators in Admin Approval Mode =
Disabled; - User Account Control: Only elevate UIAccess applications that are installed in secure locations =
Disabled।
- User Account Control: Behavior of the elevation prompt for administrators in Admin Approval Mode =
- ক্লায়েন্ট কম্পিউটার রিস্টার্ট করুন যাতে গ্রুপ পলিসি সেটিংস আপডেট হয়ে UAC ডিজেবল হয়। রিবুট után, UAC "Never notify" মোডে যাবে।
আপনি রেজিস্ট্রি ব্যবহার করে শুধু কিছু ব্যবহারকারী/কম্পিউটারের জন্য UAC ডিজেবল করতে পারেন, এবং গ্রুপ পলিসি প্রেফারেন্সের মাধ্যমে সেটিংস ডিপ্লয় করতে পারেন।
GPO সেকশন Computer Configuration -> Preferences -> Windows Settings -> Registry-এ একটি নতুন রেজিস্ট্রি প্যারামিটার তৈরি করুন নিচের সেটিংসের সাথে:
- Action: Replace
- Hive: HKEY_LOCAL_MACHINE
- Key Path: SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
- Value name: EnableLUA
- Value type: REG_DWORD
- Value data: 0
তারপর Common ট্যাবে যান এবং অপশনগুলো সক্রিয় করুন:
- Remove this item when it is no longer applied
- Item-Level targeting
Targeting বাটন চাপুন এবং যেসব কম্পিউটার বা ডোমেন সিকিউরিটি গ্রুপে UAC ডিজেবল পলিসি প্রয়োগ করতে চান সেগুলো নির্দিষ্ট করুন।
UAC ডিজেবল থাকলেও, কিছু অ্যাপ "This app has been blocked for your protection." মেসেজের সাথে লঞ্চ হতে ব্লক হতে পারে।
UAC রেজিস্ট্রি কী সেটিংস
আপনি রেজিস্ট্রি 통해서 UAC সেটিংস ম্যানেজ করতে পারেন। User Account Control-এর আচরণের জন্য দায়ী প্যারামিটারগুলো রেজিস্ট্রি কী HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System এর অধীনে থাকে।
যখন আপনি কন্ট্রোল প্যানেলে UAC স্লাইডারের মান পরিবর্তন করেন, উইন্ডোজ এই রেজিস্ট্রি কী-এর সেটিংসের মান নিচের মতো পরিবর্তন করে (নিচে ইউজার অ্যাকাউন্ট কন্ট্রোল স্লাইডারের বিভিন্ন লেভেলের জন্য রেডি REG ফাইল দেওয়া আছে):
UAC লেভেল ৪ (Always notify):
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System] "ConsentPromptBehaviorAdmin"=dword:00000002 "ConsentPromptBehaviorUser"=dword:00000003 "EnableInstallerDetection"=dword:00000001 "EnableLUA"=dword:00000001 "EnableVirtualization"=dword:00000001 "PromptOnSecureDesktop"=dword:00000001 "ValidateAdminCodeSignatures"=dword:00000000 "FilterAdministratorToken"=dword:00000000
UAC লেভেল ৩ (Notify only when programs try to make changes to my computer):
"ConsentPromptBehaviorAdmin"=dword:00000005 "ConsentPromptBehaviorUser"=dword:00000003 "EnableInstallerDetection"=dword:00000001 "EnableLUA"=dword:00000001 "EnableVirtualization"=dword:00000001 "PromptOnSecureDesktop"=dword:00000001 "ValidateAdminCodeSignatures"=dword:00000000 "FilterAdministratorToken"=dword:00000000
UAC লেভেল ২:
"ConsentPromptBehaviorAdmin"=dword:00000005 "ConsentPromptBehaviorUser"=dword:00000003 "EnableInstallerDetection"=dword:00000001 "EnableLUA"=dword:00000001 "EnableVirtualization"=dword:00000001 "PromptOnSecureDesktop"=dword:00000000 "ValidateAdminCodeSignatures"=dword:00000000 "FilterAdministratorToken"=dword:00000000
UAC লেভেল ১ (Never notify — সম্পূর্ণরূপে UAC ডিজেবল):
"ConsentPromptBehaviorAdmin"=dword:00000000 "ConsentPromptBehaviorUser"=dword:00000003 "EnableInstallerDetection"=dword:00000001 "EnableLUA"=dword:00000001 "EnableVirtualization"=dword:00000001 "PromptOnSecureDesktop"=dword:00000000 "ValidateAdminCodeSignatures"=dword:00000000 "FilterAdministratorToken"=dword:00000000
আপনি রেজিস্ট্রি এডিটর GUI বা কমান্ড প্রম্পট থেকে যেকোনো প্যারামিটারের মান পরিবর্তন করতে পারেন। উদাহরণস্বরূপ, কম্পিউটারে UAC ডিজেবল করতে (রিবুট প্রয়োজন), আপনি এই কমান্ড চালাতে পারেন:
reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f.
অথবা অনুরূপ পাওয়ারশেল কমান্ড:
New-ItemProperty -Path HKLM:Software\Microsoft\Windows\CurrentVersion\policies\system -Name EnableLUA -PropertyType DWord -Value 0 -Force
এই থ্রেডে আরেকটি রেজিস্ট্রি প্যারামিটার আছে, LocalAccountTokenFilterPolicy, যাকে প্রায়শই Remote UAC বলা হয়। এই প্যারামিটার লোকাল ব্যবহারকারীর অ্যাকাউন্ট যা অ্যাডমিনিস্ট্রেটর প্রিভিলেজ সহ, ডিফল্ট অ্যাডমিনিস্ট্রেটিভ শেয়ারের অধীনে রিমোট কানেকশন রেস্ট্রিক্ট করে।
উইন্ডোজ সার্ভারে ইউজার অ্যাকাউন্ট কন্ট্রোল
উইন্ডোজ সার্ভারে ইউজার অ্যাকাউন্ট কন্ট্রোল একইভাবে কাজ করে এবং একইভাবে ম্যানেজ করা হয় যেভাবে উইন্ডোজ ডেস্কটপ এডিশনে।
উইন্ডোজ সার্ভার ২০১৬/২০১৯-এ UAC সম্পূর্ণরূপে ডিজেবল করা গ্রহণযোগ্য যদি নিচের শর্তগুলো পূরণ হয়:
- শুধু অ্যাডমিনিস্ট্রেটরদের রিমোট অ্যাক্সেস থাকে সার্ভার ডেস্কটপে (RDP অ্যাক্সেস নন-অ্যাডমিন ব্যবহারকারীদের জন্য ডিজেবল থাকতে হবে)। RDS হোস্টে, UAC সক্রিয় রাখুন;
- অ্যাডমিনিস্ট্রেটররা শুধু অ্যাডমিনিস্ট্রেটিভ ম্যানেজমেন্ট টাস্কের জন্য উইন্ডোজ সার্ভার ব্যবহার করবেন। অ্যাডমিনিস্ট্রেটরকে অফিস ডকুমেন্ট, মেসেঞ্জার, ওয়েব ব্রাউজার শুধু একটি ওয়ার্কস্টেশনে নন-প্রিভিলেজড ব্যবহারকারীর অ্যাকাউন্টে UAC সক্রিয় থাকা অবস্থায় ব্যবহার করা উচিত, সার্ভার হোস্টে নয় (অ্যাডমিনিস্ট্রেটর অ্যাকাউন্ট সিকিউর করার 베スト প্র্যাকটিসের আর্টিকেল চেক করুন)।
উইন্ডোজ সার্ভার কোর এডিশনে UAC সবসময় ডিজেবল থাকে।
UAC সক্রিয় থাকলে, উইন্ডোজ সার্ভার লোকাল কম্পিউটার অ্যাকাউন্টের অধীনে রিমোট কানেকশন অনুমতি দেয় না (via net use, winrm, Powershell Remoting)। ব্যবহারকারীর টোকেন ইনাবলড UAC LocalAccountTokenFilterPolicy প্যারামিটার দ্বারা ফিল্টার হবে (পূর্বের সেকশনে আলোচনা করা হয়েছে)।
UAC স্লাইডার এবং গ্রুপ পলিসি সেটিংস
আপনি UAC সেটিংস উভয় স্লাইডার এবং GPO ব্যবহার করে ম্যানেজ করতে পারেন। কিন্তু একক কোনো গ্রুপ পলিসি প্যারামিটার নেই যা UAC স্লাইডারের অবস্থানের সাথে মিলে যাওয়া চারটি UAC প্রোটেকশন লেভেল থেকে একটি বেছে নিতে দে। পরিবর্তে, ১০টি আলাদা GPO প্যারামিটার ব্যবহার করে UAC সেটিংস ম্যানেজ করার পরামর্শ দেওয়া হয়। এই পলিসিগুলো GPO এডিটরের নিচের সেকশনে অবস্থিত: Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Local Policies -> Security Options। UAC-সম্পর্কিত গ্রুপ পলিসি প্যারামিটারগুলো User Account Control দিয়ে শুরু হয়।
নিচের টেবিলে UAC গ্রুপ পলিসি প্যারামিটার এবং তাদের সংশ্লিষ্ট রেজিস্ট্রি কীগুলো দেখানো হয়েছে।
| Policy Name | Registry Parameter Set by the Policy |
| User Account Control: Admin Approval Mode for the Built-in Administrator account | FilterAdministratorToken |
| User Account Control: Allow UIAccess applications to prompt for elevation without using the secure desktop | EnableUIADesktopToggle |
| User Account Control: Behavior of the elevation prompt for administrators in Admin Approval Mode | ConsentPromptBehaviorAdmin |
| User Account Control: Behavior of the elevation prompt for standard users | ConsentPromptBehaviorUser |
| User Account Control: Detect application installations and prompt for elevation | EnableInstallerDetection |
| User Account Control: Only elevate executables that are signed and validated | ValidateAdminCodeSignatures |
| User Account Control: Only elevate UIAccess applications that are installed in secure locations | EnableSecureUIAPaths |
| User Account Control: Run all administrators in Admin Approval Mode | EnableLUA |
| User Account Control: Switch to the secure desktop when prompting for elevation | PromptOnSecureDesktop |
| User Account Control: Virtualize file and registry write failures to per-user locations | EnableVirtualization |
ডিফল্টভাবে, UAC লেভেল ৩ নিচের গ্রুপ পলিসি সেটিংস ব্যবহার করে:
UAC লেভেল ৩ (ডিফল্ট)
Admin Approval Mode for the Built-in Administrator account = Disabled
Allow UIAccess applications to prompt for elevation without using the secure desktop = Disabled
Behavior of the elevation prompt for administrators in Admin Approval Mode = Prompt for consent for non-Windows binaries
Behavior of the elevation prompt for standard users = Prompt for credentials on the secure desktop
Detect application installations and prompt for elevation = Enabled (Workgroup-এর জন্য), Disabled (ডোমেন-জয়েন্ড উইন্ডোজ ডিভাইসের জন্য)
Only elevate executables that are signed and validated = Disabled
Only elevate UIAccess applications that are installed in secure locations = Enabled
Run all administrators in Admin Approval Mode = Enabled
Switch to the secure desktop when prompting for elevation = Enabled
Virtualize file and registry write failures to per-user locations = Enabled