کامپیوتر، شبکه

کپی برداری از مطالب  وبلاگ با ذکر منبع مجاز است.

راه‌های ساده ای مانند کلیک راست و Run as Administrator و گزفتن Shift + Ctrl  و اجرا برنامه و روش Compatibility Properties برای اجرا موجود است

چگونه فایل .bat را به صورت خودکار با Run as Administrator اجرا کنیم

در این مطلب در ادامه آموزش اسکریپت نویسی فایل .bat می‌خواهیم نیاز نباشد کاربر از روش‌های بالا Run as Administrator انجام بدهد و با اجرا فایل بصورت خودکار در سطح دسترسی Administrator اجرا شود.

مطالعه مطالب و آموزش‌های قبلی مفید می‌باشد:

درباره Batch File و دستورات CMD و .BAT

کد اول

برای اینکار به سادگی می‌توانید متن زیر را به ابتدای فایل اسکریپت اضافه کنید و بعد  از :start کد اسکریپت خود را قرار دهید


@echo off
setlocal EnableDelayedExpansion & cd /d "%~dp0"
%1 %2
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :start","","runas",0)(window.close)&exit
:start

این دستور با استفاده از vbscript فایل باز شده را با دسترسی Administrator  دورباره اجرا می‌کند و جهت ادامه کار goto به :start می‌ژند و ادامه اسکریت‌ را اجرا می‌کند و پنجره اجرای عادی فایل را می‌بندد.

 

 

کد دوم

برای استفاده از این روش متن زیر را در .bat کپی کنید و  کد اکریپت مورد نظر را در محل جاگذاری کنید
@echo off
call :isAdmin
if %errorlevel% == 0 (
goto :run
) else (
echo Requesting administrative privileges...
goto :UACPrompt
)
exit /b
:isAdmin
fsutil dirty query %systemdrive% >nul
exit /b
:run

exit /b
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "cmd.exe", "/c %~s0 %~1", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
del "%temp%\getadmin.vbs"
exit /B`

این اسکریپت با دستور call زیر‌مجموعه دستور ایجاد می‌کند و در قسمت:isAdmin توسط دستور fsutil dirty query %systemdrive% (این دستور نام درایو ویندوز را میپرسد از انجا که این کار به دسترسی ادمین نیاز دارد در اینجا استفاده شده است) و چک کردن %errorlevel%  بررسی دسترسی ادمین را انجام می‌دهد اگر دسترسی ادمین باشد اسکریپت شما اجرا می‌شود در غیر این صورت یک فایل getadmin.vbs در پوشه temp ویندوز با دستور اجرای cmd.exe در حالت   Run as Administrator و مسیر دادن خود اسکریت فایل دسترسی را مجدد بررسی میکند. در انتها هم فایل getadmin.vbs را حذف می‌کند.

منبع

مهندس چراغی
بیوگرافی
رفع ایراد سیستم و شبکه های کامپیوتری  ، برقراری امنیت  و نیز فروش تمامی تجهیزات مربوط به آنها
کدهای وبلاگ