כיצד להעלות אוטומטית קובץ אצווה כדי להפעיל אותו כמנהל
לפעמים אתה צריך ליצור קובץ אצווה הכולל פקודות הדורשות זכויות גבוהות. בשל פונקציית UAC הכלולה ב-Windows מאז Windows Vista, כאשר מתחילים קובץ אצווה, הוא נפתח ללא את זכויות הגישה הנדרשות אלא אם תלחץ עליה באמצעות לחיצה ימנית ובחר "הפעל כמנהל" מההקשר תַפרִיט. הנה איך אתה יכול ליצור קובץ אצווה שיעלה את עצמו אוטומטית.
פרסומת
לפני שתמשיך, תראה כיצד להוסיף קובץ אצווה (*.bat) לתפריט החדש של סייר הקבצים. הצב את התוכן הבא בתחילת קובץ האצווה שלך:
:: בדוק וקבל זכויות אדמין באופן אוטומטי V2. @הד כבוי. CLS. הֵד. ECHO ECHO הפעלת מעטפת Admin. ECHO :init. setlocal DisableDelayedExpansion. הגדר "batchPath=%~0" עבור %%k ב-(%0) הגדר batchName=%%~nk. הגדר "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%vbs" setlocal EnableDelayedExpansion :checkPrivileges. NET FILE 1>NUL 2>NUL. if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges ): getPrivileges. אם '%1'=='ELEV' (הד ELEV & shift /1 & goto gotPrivileges) הֵד. הד **************************************** ECHO מפעיל את UAC להסלמה של הרשאות. ECHO ************************************** ECHO Set UAC = CreateObject^("Shell. יישום"^) > "%vbsGetPrivileges%" ECHO args = "ELEV " >> "%vbsGetPrivileges%" ECHO עבור כל strArg ב-WScript. טיעונים >> "%vbsGetPrivileges%" ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%" ECHO הבא >> "%vbsGetPrivileges%" ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%" "%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %* יציאה /B :gotPrivileges. setlocal & pushd. cd /d %~dp0. if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1) ::START. REM הפעל מעטפת כמנהל (דוגמה) - שים כאן קוד כרצונך. ECHO %batchName% טיעונים: %1 %2 %3 %4 %5 %6 %7 %8 %9.
הצב פקודות אצווה משלך הדורשות הגבהה מתחת לשורה האחרונה.
הקוד שסופק יצור קובץ VBS מיוחד שיפעיל אותו מחדש אם הוא אינו פועל כמנהל. לכן, אם תפעיל אותו עם הרשאות מוגבלות, תקבל הנחיה של UAC המבקשת ממך להעלות הרשאות לפני שהוא מפעיל את הפקודות שלו!
כך זה נראה ב-Windows 10:
קרדיטים עבור קוד זה עוברים אל מאט.