যখন শুরু হয়, অনেক প্রোগ্রামের জন্য অনুমতি উচ্চতার প্রয়োজন হয় (অ্যাপ আইকনে ঢাল), কিন্তু প্রকৃতপক্ষে তাদের স্বাভাবিক অপারেশনের জন্য প্রশাসকের বিশেষাধিকারের প্রয়োজন হয় না। উদাহরণস্বরূপ, আপনি ProgramFiles-এ অ্যাপ ফোল্ডারে আপনার ব্যবহারকারীদের জন্য ম্যানুয়ালি অনুমতি দিতে পারেন এবং/অথবা রেজিস্ট্রি কী প্রোগ্রাম দ্বারা ব্যবহৃত। তাই নন-প্রশাসক ব্যবহারকারী অ্যাকাউন্টের অধীনে এই ধরনের একটি প্রোগ্রাম শুরু করার সময়, একটি UAC প্রম্পট প্রদর্শিত হবে এবং ব্যবহারকারীকে একটি প্রশাসক পাসওয়ার্ড লিখতে হবে (যদি কম্পিউটারে ব্যবহারকারীর অ্যাকাউন্ট নিয়ন্ত্রণ সক্ষম থাকে)। এই প্রক্রিয়াটিকে বাইপাস করার জন্য, অনেক ব্যবহারকারী সাধারণভাবে UAC অক্ষম করে বা স্থানীয় গ্রুপ "প্রশাসকদের"-এ একটি ব্যবহারকারীর অ্যাকাউন্ট যোগ করে ব্যবহারকারীকে অ্যাডমিন সুবিধা প্রদান করে। অবশ্যই, উভয় পদ্ধতি নিরাপদ নয়।
কেন কিছু উইন্ডোজ অ্যাপ স্ট্যান্ডার্ড ব্যবহারকারীদের অধীনে চলে না এবং প্রশাসকের অনুমতির প্রয়োজন হয়?
একটি অ্যাপের C:\Program Files (x86)\SomeApp-এর নিজস্ব ফোল্ডারে কিছু ফাইল (লগ, কনফিগার, ইত্যাদি) সংশোধন করার জন্য প্রশাসকের বিশেষাধিকারের প্রয়োজন হতে পারে। ডিফল্টরূপে, ব্যবহারকারীদের এই ডিরেক্টরিতে সম্পাদনা (লেখা এবং পরিবর্তন) করার অনুমতি নেই। এই প্রোগ্রামটি স্বাভাবিকভাবে কাজ করার জন্য, প্রশাসকের অনুমতি প্রয়োজন। এই সমস্যাটি সমাধান করতে, আপনাকে ম্যানুয়ালি পরিবর্তন করতে হবে এবং/অথবা লিখুন এনটিএফএস ফাইল সিস্টেম স্তরে অ্যাপ ফোল্ডারে ব্যবহারকারীর (বা অন্তর্নির্মিত ব্যবহারকারী গোষ্ঠী) জন্য অনুমতি৷
দ্রষ্টব্য . প্রকৃতপক্ষে, C:\Program Files এর অধীনে নিজস্ব ফোল্ডারে পরিবর্তিত অ্যাপ্লিকেশন ডেটা সংরক্ষণ করার পরামর্শ দেওয়া হয় না। ব্যবহারকারীর প্রোফাইলে অ্যাপ ডেটা সংরক্ষণ করা ভাল। কিন্তু এটা অ্যাপ ডেভেলপারদের অলসতা ও অক্ষমতার প্রশ্ন।
প্রমিত ব্যবহারকারীর অধীনে প্রশাসকের বিশেষাধিকার প্রয়োজন এমন একটি প্রোগ্রাম কীভাবে চালাবেন?
এর আগে আমরা RunAsInvoker ব্যবহার করে নির্দিষ্ট অ্যাপের জন্য একটি UAC প্রম্পট কীভাবে নিষ্ক্রিয় করতে হয় তা বর্ণনা করেছি। প্যারামিটার যাইহোক, এই পদ্ধতি যথেষ্ট নমনীয় নয়।
আপনি /SAVECRED
ব্যবহার করে সংরক্ষিত অ্যাডমিনিস্ট্রেটর পাসওয়ার্ড (উইন্ডোজ ক্রেডেনশিয়াল ম্যানেজারে) সহ RunAs ব্যবহার করতে পারেন বিকল্প এটিও অনিরাপদ কারণ ব্যবহারকারী এই কম্পিউটারে যেকোনো প্রোগ্রাম চালানোর জন্য সংরক্ষিত অ্যাডমিনিস্ট্রেটর শংসাপত্রের পাসওয়ার্ড ব্যবহার করতে পারেন।
প্রশাসকের বিশেষাধিকার ছাড়াই (প্রশাসকের পাসওয়ার্ড না দিয়ে) এবং UAC সক্ষম (UAC স্লাইডারের লেভেল 4, 3 বা 2) সহ যেকোন প্রোগ্রামকে চালানোর জন্য জোর করার একটি সহজ উপায় বিবেচনা করা যাক।
একটি উদাহরণ হিসাবে রেজিস্ট্রি এডিটরকে ধরা যাক — regedit.exe (এটি C:\Windows\ ফোল্ডারে অবস্থিত)। অ্যাপ আইকনের পাশে ইউএসি শিল্ডটি লক্ষ্য করুন। এই আইকনটির অর্থ হল UAC এর মাধ্যমে বিশেষাধিকারের উচ্চতা এই প্রোগ্রামটি চালানোর জন্য অনুরোধ করা হবে৷
আপনি যদি regedit.exe
চালান , আপনি অ্যাডমিনিস্ট্রেটর শংসাপত্রের জন্য জিজ্ঞাসা করার জন্য একটি ব্যবহারকারী অ্যাকাউন্ট নিয়ন্ত্রণ উইন্ডো দেখতে পাবেন (Do you want to allow this app to make changes to your device?
) আপনি একটি পাসওয়ার্ড প্রদান না করলে এবং উচ্চতা নিশ্চিত না করলে, অ্যাপটি শুরু হবে না।
আসুন এই প্রোগ্রামের জন্য UAC অনুরোধটি বাইপাস করার চেষ্টা করি। run-as-non-admin.bat পাঠ্য ফাইল তৈরি করুন৷ আপনার ডেস্কটপে নিম্নলিখিত কোড রয়েছে:
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %1"
প্রশাসকের সুযোগ-সুবিধা ছাড়াই regedit.exe-কে জোর করে চালানোর জন্য এবং UAC প্রম্পট দমন করতে, ডেস্কটপে এই BAT ফাইলটিতে আপনি যে EXE ফাইলটি শুরু করতে চান তা সহজে টেনে আনুন।
তারপরে রেজিস্ট্রি এডিটরকে UAC প্রম্পট ছাড়াই এবং প্রশাসকের পাসওয়ার্ড না দিয়েই শুরু করা উচিত। আপনি যদি টাস্ক ম্যানেজার খুলে উন্নত যোগ করেন কলামে, আপনি দেখতে পাবেন যে উন্নত স্থিতি ছাড়াই regedit.exe প্রক্রিয়া রয়েছে (অ-অ্যাডমিন ব্যবহারকারীর অনুমতি দিয়ে চালানো হয়)।
HKEY_LOCAL_MACHINE রেজিস্ট্রি হাইভের যেকোনো প্যারামিটার সম্পাদনা করার চেষ্টা করুন। আপনি দেখতে পাচ্ছেন, একজন ব্যবহারকারী এই রেজিস্ট্রি কীতে আইটেমটি সম্পাদনা করতে পারে না (ব্যবহারকারীর সিস্টেম রেজিস্ট্রি কীগুলিতে লেখার অনুমতি নেই)। কিন্তু আপনি আপনার ইউজার হাইভ — HKEY_CURRENT_USER-এ রেজিস্ট্রি কী এবং প্যারামিটার যোগ বা সম্পাদনা করতে পারেন।
একইভাবে আপনি BAT ফাইল ব্যবহার করে যেকোনো অ্যাপ চালাতে পারবেন। শুধু এক্সিকিউটেবল ফাইলের পাথ নির্দিষ্ট করুন।
run-app-as-non-admin.bat Set ApplicationPath="C:\Program Files\SomeApp\testapp.exe"
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %ApplicationPath%"
আপনি একটি প্রসঙ্গ মেনু যোগ করতে পারেন যা উচ্চতা ছাড়াই সমস্ত অ্যাপ চালানোর অনুমতি দেয়। এটি করার জন্য, RunAsUser.REG ফাইল তৈরি করুন, এতে নিম্নলিখিত কোডটি অনুলিপি করুন, reg ফাইলটিতে ডাবল ক্লিক করে সংরক্ষণ করুন এবং এটিকে Windows রেজিস্ট্রিতে আমদানি করুন (এই পরিবর্তনটি প্রয়োগ করার জন্য আপনাকে প্রশাসকের অনুমতির প্রয়োজন হবে)।
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker] @="Run as user without UAC privilege elevation" [HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker\command] @="cmd /min /C \"set __COMPAT_LAYER=RUNASINVOKER && start \"\" \"%1\"\""
এর পরে, প্রশাসকের বিশেষাধিকার ছাড়া যেকোন অ্যাপ্লিকেশন চালানোর জন্য, শুধুমাত্র “UAC বিশেষাধিকার উচ্চতা ছাড়াই ব্যবহারকারী হিসাবে চালান নির্বাচন করুন। " ফাইল এক্সপ্লোরারের প্রসঙ্গ মেনুতে৷
৷ আপনি GPO ব্যবহার করে রেজিস্ট্রি প্যারামিটার আমদানি করে ডোমেনের সমস্ত কম্পিউটারে এই বিকল্পটি স্থাপন করতে পারেন৷আমি আপনাকে আবারও মনে করিয়ে দিচ্ছি যে RUNASINVOKER মোডে প্রোগ্রামটি ব্যবহার করলে আপনি প্রোগ্রামটিকে উন্নত করতে পারবেন না। RunAsInvoker UAC প্রম্পটকে দমন করে এবং প্রোগ্রামকে বলে যে এটি বর্তমান ব্যবহারকারীর অনুমতি নিয়ে চালানো উচিত, এবং বিশেষাধিকারের উচ্চতার জন্য জিজ্ঞাসা করা উচিত নয়। সিস্টেম সেটিংস বা ফাইলগুলি সম্পাদনা করার জন্য যদি কোনও প্রোগ্রামের সত্যিই উন্নত বিশেষাধিকারের প্রয়োজন হয় তবে এটি কাজ করবে না বা আবার প্রশাসকের অনুমতি চাইবে।
__COMPAT_LAYER-এ RunAsInvoker দিয়ে UAC কিভাবে বাইপাস করবেন?
এনভায়রনমেন্ট ভেরিয়েবল __COMPAT_LAYER আপনাকে অ্যাপ্লিকেশনগুলির জন্য বিভিন্ন সামঞ্জস্যের স্তর সেট করতে দেয় (সামঞ্জস্যতা একটি EXE ফাইলের বৈশিষ্ট্যগুলিতে ট্যাব)। এই ভেরিয়েবলটি ব্যবহার করে, আপনি একটি প্রোগ্রাম শুরু করার সময় ব্যবহার করা সামঞ্জস্যতার সেটিংস নির্দিষ্ট করতে পারেন। উদাহরণস্বরূপ, Windows 8 সামঞ্জস্য মোডে এবং 640×480 রেজোলিউশনে একটি অ্যাপ শুরু করতে, নিম্নলিখিতটি সেট করুন:
set __COMPAT_LAYER=Win8RTM 640x480
__COMPAT_LAYER ভেরিয়েবলে আমাদের আগ্রহের কিছু বিকল্প রয়েছে। নিম্নলিখিত প্যারামিটার রয়েছে:
- RunAsInvoker – UAC প্রম্পট ছাড়াই একটি অভিভাবক প্রক্রিয়ার সুবিধা সহ একটি অ্যাপ চালান;
- RunAsHighest – ব্যবহারকারীর কাছে উপলব্ধ সর্বোচ্চ-স্তরের অনুমতি সহ একটি প্রোগ্রাম চালান (যদি কোনো ব্যবহারকারীর প্রশাসকের বিশেষাধিকার থাকে তাহলে UAC প্রম্পট প্রদর্শিত হবে);
- RunAsAdmin - প্রশাসক হিসাবে একটি অ্যাপ চালান (প্রতিবার UAC প্রম্পট প্রদর্শিত হয়)।
নিম্নলিখিত CMD কোডটি বর্তমান প্রক্রিয়ার জন্য RunAsInvoker মোডকে সক্ষম করে এবং উচ্চতা ছাড়াই নির্দিষ্ট প্রোগ্রাম চালায়:
set __COMPAT_LAYER=RUNASINVOKER
start "" "C:\Program Files\MyApp\testapp.exe"
EXE ফাইল ম্যানিফেস্টে RunAsInvoker মোড সক্ষম করুন
যেমনটি আমরা উপরে বলেছি, Windows 10 এমন প্রোগ্রামগুলির জন্য একটি UAC শিল্ড আইকন প্রদর্শন করে যেগুলি চালানোর জন্য উচ্চতা প্রয়োজন। প্রোগ্রাম মেনিফেস্ট এ অ্যাপ্লিকেশন কম্পাইল করার সময় বিকাশকারীরা এই প্রয়োজনীয়তা সেট করে .
আপনি যেকোন exe ফাইলের ম্যানিফেস্ট সম্পাদনা করতে পারেন এবং এলিভেটেড মোডে প্রোগ্রাম চালানোর প্রয়োজনীয়তা নিষ্ক্রিয় করতে পারেন৷
প্রোগ্রাম ম্যানিফেস্ট সম্পাদনা করতে, আপনি বিনামূল্যে রিসোর্স হ্যাকার ব্যবহার করতে পারেন টুল. রিসোর্স হ্যাকারে অ্যাপটির এক্সিকিউটেবল ফাইল খুলুন।
এই উদাহরণে, আমিAutologon.exe
-এর ম্যানিফেস্ট সম্পাদনা করব Sysinternals দ্বারা টুল, যা পাসওয়ার্ড ছাড়াই স্বয়ংক্রিয়ভাবে উইন্ডোজে লগ ইন করতে ব্যবহার করা যেতে পারে। বাম দিকের গাছে, ম্যানিফেস্ট বিভাগে যান এবং প্রোগ্রাম ম্যানিফেস্ট খুলুন। নিম্নলিখিত xml বিভাগে মনোযোগ দিন:
<requestedPrivileges> <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> </requestedPrivileges>
এটা প্রয়োজনীয় অ্যাডমিনিস্ট্রেটরকে ধন্যবাদ যে বিকল্পটি উইন্ডোজ সর্বদা প্রশাসক হিসাবে এই প্রোগ্রামটি চালানোর চেষ্টা করে।
প্রয়োজনীয় অ্যাডমিনিস্ট্রেটরকে আনভোকার হিসেবে পরিবর্তন করুন এবং exe ফাইলে পরিবর্তনগুলি সংরক্ষণ করুন।
মনে রাখবেন যে এখন ইউএসি শিল্ডটি প্রোগ্রাম আইকন থেকে অদৃশ্য হয়ে গেছে, এবং আপনি বর্তমান ব্যবহারকারীর অনুমতি নিয়ে অ্যাডমিনিস্ট্রেটর পাসওয়ার্ড না চাওয়া ছাড়াই এটি চালাতে পারেন৷
যদি এক্সিকিউটেবল অ্যাপ ফাইলটি এমএস অথেন্টিকোড (কোড সাইনিং শংসাপত্র) দিয়ে স্বাক্ষরিত হয়, তাহলে exe ফাইলটি সংশোধন করার পরে, এটি কাজ করা বন্ধ করে দিতে পারে বা একটি সতর্কতা জারি করতে পারে।
এই ক্ষেত্রে, আপনি প্রোগ্রামটিকে একটি বহিরাগত ম্যানিফেস্ট ফাইল ব্যবহার করতে বাধ্য করতে পারেন। একটি প্লেইন টেক্সট ফাইল তৈরি করুন appname.exe.manifest (উদাহরণস্বরূপ, Autologon.exe.manifest
) exe ফাইল সহ ডিরেক্টরিতে এবং এটিতে রিসোর্স হ্যাকার থেকে ম্যানিফেস্ট কোডটি অনুলিপি করুন। প্রয়োজনীয় অ্যাডমিনিস্ট্রেটরকে আনভোকার হিসেবে পরিবর্তন করুন . ম্যানিফেস্ট ফাইল সংরক্ষণ করুন।
exe ফাইলগুলি চালু করার সময় উইন্ডোজ সর্বদা বাহ্যিক ম্যানিফেস্ট ফাইল ব্যবহার করার চেষ্টা করে, একটি বিশেষ রেজিস্ট্রি প্যারামিটার সক্ষম করুন:
REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide" /v PreferExternalManifest /t REG_DWORD /d 1 /f
উইন্ডোজ পুনরায় চালু করুন এবং নিশ্চিত করুন যে প্রোগ্রামটি একটি বহিরাগত ম্যানিফেস্ট ফাইল ব্যবহার করছে যা প্রশাসকের বিশেষাধিকার ছাড়াই চালানোর কথা বলে৷