وقتی شما با حساب کاربری خود به ویندوز وارد میشوید، یک توکن شامل اطلاعات هویتی مثل گروه کاربری و اختیاراتی از قبیل مجوز خواندن، نوشتن و اجرا به حسابتان تعلق میگیرد.
در بین اطلاعات موجود در این توکن، یک سطح دسترسی نیز وجود دارد که سیستمعامل از آن برای تشخیص میزان اعتماد به عناصر مختلف مثل فایلها و کلیدهای رجیستری استفاده میکند تا در زمان نصب نرمافزارها به کاربر اطلاع داده و بتواند دسترسیهای غیرضروری برنامهها به فایلهای سیستمی را محدود کند.
مکانزیم MIC یا کنترل دسترسی ضروری، حداقل شش سطح متفاوت دسترسی دارد: بیاعتماد، پایین، متوسط، بالا، سیستمی و نصبکنندهی مورد اعتماد.
به صورت پیشفرض، حساب یک کاربر معمولی در سطح دسترسی متوسط قرار میگیرد. این وضعیت، برابر حداکثری سطحی است که یک برنامه در حالت اجرا بدون دسترسی خاص مدیریتی میتواند داشته باشد.
وقتی روی برنامه کلیک راست کرده و گزینهی Run as administrator را انتخاب میکنید، آن برنامه (فقط همان برنامه) با توکن مدیریتی شروع به کار میکند، بنابراین میتواند برای عملکردهایی که نیازمند دسترسیهای اضافی به فایلهای سیستمی ویندوز هستند نیز مجوز داشته باشد.
سطوح مختلف دسترسی ویندوز:
- بیاعتماد یا Unrtusted به برنامههای ناشناس داده میشود.
- پایین (Low): معمولاً به برنامههایی که با اینترنت سر و کار دارند مثل مرورگرها داده میشود.
- متوسط (Medium): به کاربران استاندارد داده میشود و برای بسیاری از برنامهها استفاده میشود.
- بالا (High): دسترسی سطح مدیریت، عموماً نیاز به بالا بردن دسترسی دارد.
- سیستمی: برای استفادهی هستهی ویندوز و سرویسهای مرکزی سیستمعامل استفاده میشود.
- نصبکنندهی مورد اعتماد (Trsuted Instaler): به بهروزرسانیهای ویندوز و اجزاء اصلی سیستم اختصاص دارد.
برنامههایی که با اجرای یک فایل exe توسط یک حساب کاربری با دسترسی متوسط شروع به کار میکنند، همین سطح از دسترسی را خواهند داشت، مگر اینکه سطح پایینتر برای آنها ثبت شده باشد. به توسعهدهندگان نرمافزار توصیه میشود تا جای ممکن، پایینترین سطح دسترسی را برای برنامههایشان تعیین کنند تا بتوان از دسترسیهای اضافهی برنامههایی که نیاز به سطوح بالاتر دارند و مهمتر از آن، کدهای مخرب یا بدافزارها به سیستم جلوگیری کرد.
طراحی «مجوز حداقلی» در ساختار حساب کاربری مدیریتی ویندوز هم اعمال شده، به این صورت که این حساب در زمان ورود به سیستم، دو توکن استاندارد و سطح مدیریتی را دریافت میکند و در مواقع مورد نیاز، از سطح استاندارد یا متوسط به جای سطح بالا استفاده میکند.
اگر چه مایکروسافت توصیه میکند بدون داشتن دلیل موجه، از اجرای برنامهها در حالت administrator خودداری شود، قرار دادن دادهها در قسمتهای مختلفی مثل Program Files در ویندوز، نیازمند دسترسی مدیریتی خواهد بود.
در ادامه با تمام راههایی که با استفاده از آن میتواند فایلهای اجرایی را با دسترسی مدیریتی (دسترسی بالا) در ویندوز ۱۰ اجرا کرد؛ شامل روشهایی که کمک میکند آن برنامه همیشه با دسترسی سطح بالا اجرا شود، آشنا میشوید.
راههای مختلف اجرای برنامه در حالت مدیریت در ویندوز
با سادهترین و واضحترین روش شروع میکنیم، میتوانید روی آیکون برنامه کلیک راست کرده و با انتخاب گزینهی Run as administrator، برنامه را با دسترسی سرپرست سیستم اجرا کنید.
به عنوان یک میانبر، با نگه داشتن دکمههای شیفت+کنترل و دابل کلیک کردن روی برنامه هم میتوانید به هدفتان برسید.
علاوه بر اینها، با نگه داشتن دکمهی شیفت و کلیک راست روی برنامه، میبینید که گزینهی Run as a different user نیز به منو اضافه میشود و با انتخاب آن، صفحهای باز میشود که در آن میتوانید مشخصات یک کاربر دیگر را وارد کنید. این کاربر میتواند حساب administrator باشد که نام کاربری آن به همین نام است و اگر رمز عبوری برای آن تنظیم نکرده باشید، کلمهی عبورش هم خالی خواهد بود.
در این مکانها نیز میانبرهایی برای دسترسی مدیریتی وجود دارد:
منوی شروع: با کلیک راست روی هر فایل اجرایی در این قسمت هم میتوانید گزینهی اجرا در حالت administrator را مشاهده کنید.
نوار وظیفه: روی یک برنامه از نوار وظیفه (taskbar) کلیک کنید تا لیست منوی آن باز شود، حالا در این منو روی فایل exe کلیک راست کنید و گزینهی admin را انتخاب کنید.
File Explorer: در مرورگر فایل، برنامه رو انتخاب کرده و از منوی بالا Manage را بزنید و گزینهی Run as administrator را انتخاب کنید.
برنامهی Run: با گرفتن کلیدهای ترکیبی ویندوز+R میتوانید وارد Run شوید و با دستور RunAs.exe /user:Administrator "cmd.exe” هر برنامهای را (مثل cmd) در حالت administrator اجرا کنید.
Task Scheduler: در زمان ایجاد یک کار (task) جدید از قسمت Action > Create Task در این برنامه، گزینههای Run whether user is logged on or not و Run with highest privileges از زبانهی General را انتخاب کنید.
توجه داشته که روش استفاده از Command Prompt تا زمانی که حساب کاربری Administrator را فعال نکرده باشید و تنظیم دیگری را که ورود دستور بدون نیاز به کلمهی عبور را ممکن میکند را تغییر ندهید، کار نخواهد کرد.
- با جستجو در منوی شروع یا Run برنامهی compmgmt.msc را باز کنید. در مسیر Local Users and Groups > Users روی Administrator دو بار کلیک کرده و Account is disabled را از حالت انتخاب خارج کنید.
- در منوی شروع یا Run برنامهی gpedit.msc را باز کرده و در مسیر Computer Configuration > Windows Settings > Local Policies > Security Options روی گزینهی Accounts: Limit local account use of blank passwords to console logon online دو بار کلیک کرده و گزینهی Disable را انتخاب کنید.
ضمناً در همان قسمت Group Policy Editor (gpedit.msc) که در بخش قبل به آن اشاره کردیم، مجموعهای از گزینههای مفید برای بهبود تنظیمات کنترل حسابهای کاربری ویندوز وجود دارد که میتوانید از آنها استفاده کنید.
چطور برنامه را طوری تنظیم کنیم که همیشه در حالت مدیریتی اجرا شود؟
با توجه به فلسفهی مایکروسافت که توصیه میکند برنامهها کمترین میزان دسترسی مورد نیازشان را داشته باشند، تنظیم یک برنامه به نحوی که همیشه با دسترسی مدیریتی اجرا شود در مجموع پیشنهاد نمیشود؛ اما گاهی اوقات وقتی با برنامههایی سر و کار داشته باشیم که بارها و بارها نیاز به دسترسیهای بالاتر دارند، انجام کار تکراری خستهکننده است و میتوانیم با روشهایی آن را دور بزنیم:
با راست کلیک کردن روی یک فایل میانبر و از زبانهی Shortcut و قسمت Advanced میتوانید گزینهی Run as administrator را انتخاب کرده و خیالتان از اجرای مدیریتی برنامه در دفعات بعد راحت باشد.
توجه داشته باشید که با کلیک راست روی فایل اجرایی میتوانید یک فایل میانبر از روی آن درست کنید و اگر shortcut را در مسیر C:\Users\TechSpot\AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup کپی کنید، برنامه در هنگام وارد شدن به ویندوز به طور خودکار اجرا میشود.
یک راه دیگر برای این کار استفاده از تنظیمات Compatibility است. با کلیک راست روی فایل اجرایی و انتخاب Properties و زبانهی Compatibility میتوانید گزینهی Run this program as an administrator را انتخاب کنید.
راه سختتر برای اجرای همیشگی برنامه با دسترسی مدیریتی، استفاده از Registry Editor است.
- در برنامهی regedit به قسمت HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\AppCompatFlags\Layers بروید.
- اگر گزینهی Layers وجود نداشت، روی AppCompatFlags کلیک راست کرده و کلید جدیدی به نام Layers ایجاد کنید.
- با کلیک راست روی Layers (یا روی پوشهاش یا در فضای خالی سمت راست) یک String Value جدید درست کنید.
- نام آن را برابر با آدرس فایل اجرایی قرار دهید.
- Value data را روی ~ RUNASADMIN تنظیم کنید.
روشهای اضافی
1. یک برنامهی ویندوزی به نام MicEnum وجود دارد که لیستی از فایلها و فولدرهای ویندوز و سطوح دسترسی آنها ایجاد میکند و میتواند سطح جدیدی برای آنها تعیین کرده و در پوشهها و رجیستری به مرور پرداخت.
برنامهی Process Explorer نیز با کلیک راست روی نوار افقی شامل CPU، Private Bytes و ... و باز کردن properties و انتخاب Integrity Levels توانایی نمایش سطوح درستی برنامهها را داراست.
۲. در نصب ویندوز، اولین حساب کاربری که ایجاد میشود، حساب local administrator است و سایر حسابها، کاربر استاندارد هستند. به صورت پیشفرض، حساب کاربری داخلی administrator غیرفعال است. میتوانید این حساب را با وارد کردن این دستور در Command Prompt فعال کرده و در هنگام ورود به ویندوز، انتخاب کنید: net user administrator /active:yes همین دستور اگر به no ختم شود حساب مذکور را غیرفعال میکند.
۳. مایکروسافت ابزارهای مختلفی مثل Elevation PowerToys و PsExec دارد که میتوانند دسترسی مدیریتی فراهم کنند اما توضیح در مورد آنها در چارچوب این مقاله نمیگنجد.
منبع : شهر سخت افزار