Bagaimana cara secara otomatis meninggikan file batch untuk menjalankannya sebagai Administrator?

2018-08-18 05:27:54
Utama·Microsoft·Bagaimana cara secara otomatis meninggikan file batch untuk menjalankannya sebagai Administrator?

Untuk meninggikan file batch secara manual, Anda akan klik kanan dan pilih Run as Administrator. Berikut adalah cara untuk secara otomatis meninggikan file batch yang membutuhkan hak tinggi untuk berjalan dengan benar. Ini sama dengan memilih "Run as Administrator" dengan mengklik kanan file batch. Dalam kedua kasus, prompt UAC masih akan muncul.

Menaikkan File Batch Secara Otomatis

:::::::::::::::::::::::::::::::::::::::::::: :: 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 

Tambahkan instruksi Anda ke file .bat ini di bawah label "MULAI".

File batch ini membuat file Vbscript yang kemudian meluncurkan kembali file batch sebagai administrator (jika belum berjalan di bawah hak administrator) menggunakan parameter "runas" yang diperlukan untuk mengangkatnya. Metode Vbscript & “runas” telah dicakup dalam Vbscript pos lama saya dan peningkatan UAC di Windows Vista dan Tinggi.

Kredit ke Matt di Stack Overflow untuk metode ini. windows - Bagaimana saya dapat meningkatkan file batch saya secara otomatis, sehingga ia meminta dari hak administrator UAC jika diperlukan?

Menjalankan File Batch Ditinggikan secara Default

Selain metode elevasi otomatis di atas, dari sisi klien Anda dapat men-tweak registri sehingga file batch akan selalu mulai naik, menunjukkan prompt UAC. Ini dilakukan dengan mengubah aksi klik ganda default dari "terbuka" menjadi "runas" di registri. Gunakan langkah-langkah ini:

Mulai Regedit.exe dan pergi ke lokasi berikut:

 HKEY_CLASSES_ROOT \ batfile \ shell 

Klik dua kali (default) dan tetapkan nilainya data sebagai runa

Keluar dari Peninjau Suntingan Registri.

Setelah perubahan ini, file batch akan selalu berjalan tinggi ketika diklik ganda. Jalankan sebagai administrator akan menjadi opsi default yang ditampilkan ketika Anda mengklik kanan file .bat.

Pilihan Editor