كيفية رفع ملف دفعي تلقائيًا لتشغيله كمسؤول؟

2018-08-18 05:27:54
رئيسي·مايكروسوفت·كيفية رفع ملف دفعي تلقائيًا لتشغيله كمسؤول؟

لرفع الملفات الدفعية يدويًا ، انقر بزر الماوس الأيمن عليها واختر تشغيل كمسؤول. فيما يلي طريقة لرفع ملف دفعي تلقائيًا يتطلب امتيازات مرتفعة للتشغيل بشكل صحيح. هذا يعادل اختيار "تشغيل كمسؤول" بالنقر بزر الماوس الأيمن فوق ملف دفعي. في كلتا الحالتين ، ستظل مطالبة UAC تظهر.

رفع ملف دفعي تلقائيًا

:::::::::::::::::::::::::::::::::::::::::::: :: Automatically check & get admin rights V2 :::::::::::::::::::::::::::::::::::::::::::: @echo off CLS ECHO. ECHO ============================= ECHO Running Admin shell ECHO ============================= :init setlocal DisableDelayedExpansion set "batchPath=%~0" for %%k in (%0) do set batchName=%%~nk set "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs" setlocal EnableDelayedExpansion :checkPrivileges NET FILE 1>NUL 2>NUL if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges ) :getPrivileges if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges) ECHO. ECHO ************************************** ECHO Invoking UAC for Privilege Escalation ECHO ************************************** ECHO Set UAC = CreateObject^("Shell.Application"^)>"%vbsGetPrivileges%" ECHO args = "ELEV ">>"%vbsGetPrivileges%" ECHO For Each strArg in WScript.Arguments>>"%vbsGetPrivileges%" ECHO args = args ^& strArg ^& " ">>"%vbsGetPrivileges%" ECHO Next>>"%vbsGetPrivileges%" ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1>>"%vbsGetPrivileges%" "%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %* exit /B :gotPrivileges setlocal & pushd . cd /d %~dp0 if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1) :::::::::::::::::::::::::::: ::START :::::::::::::::::::::::::::: REM Run shell as admin (example) - put here code as you like ECHO %batchName% Arguments: %1 %2 %3 %4 %5 %6 %7 %8 %9 cmd /k 

أضف التعليمات الخاصة بك إلى ملف .bat هذا تحت تسمية "START".

يقوم هذا الملف الدفعي بإنشاء ملف Vbscript ثم يقوم بإعادة تشغيل الملف الدفعي كمسؤول (إذا لم يكن قيد التشغيل بالفعل بموجب امتيازات المسؤول) باستخدام معلمة "runas" المطلوبة لرفعها. تمت تغطية طريقة Vbscript و "runas" في منشوري القديم Vbscripts ورفع UAC في Windows Vista والإصدارات الأحدث.

ائتمانات إلى Matt في Stack Overflow لهذه الطريقة. النوافذ - كيف يمكنني رفع ملف دفعي تلقائيًا ، بحيث يطلب من حقوق مسؤول UAC إذا لزم الأمر؟

تشغيل ملفات Batch مرفوعة افتراضيًا

إلى جانب طريقة الارتفاع التلقائي المذكورة أعلاه ، من جانب العميل ، يمكنك تعديل السجل بحيث تبدأ الملفات الدفعية في الارتفاع دائمًا ، مما يعرض موجه UAC. يتم ذلك عن طريق تغيير إجراء النقر المزدوج الافتراضي من "open" إلى "runas" في التسجيل. استخدم الخطوات التالية:

قم بتشغيل Regedit.exe وانتقل إلى الموقع التالي:

 HKEY_CLASSES_ROOT \ batfile \ shell 

انقر نقرًا مزدوجًا (افتراضي) وقم بتعيين بيانات القيمة الخاصة به على أنه runas

قم بإنهاء محرر التسجيل.

بعد هذا التغيير ، سيتم تشغيل الملفات الدفعية دائمًا عند النقر المزدوج. سيكون التشغيل كمسؤول هو الخيار الافتراضي المعروض عند النقر بزر الماوس الأيمن فوق ملف .bat.

اختيار المحرر