Kaip automatiškai pakelti paketinį failą, kad jis būtų paleistas kaip administratorius?

2018-08-18 05:27:54
Pagrindinis·Microsoft·Kaip automatiškai pakelti paketinį failą, kad jis būtų paleistas kaip administratorius?

Jei norite rankiniu būdu pakelti paketinius failus, spustelėkite juos dešiniuoju pelės mygtuku ir pasirinkite Vykdyti kaip administratorių. Tai yra būdas automatiškai pakelti paketinį failą, kuriam tinkamai naudoti reikia aukštesnių teisių. Tai prilygsta pasirinkimui „Vykdyti kaip administratorių“ dešiniuoju pelės mygtuku spustelėjus paketo failą. Bet kuriuo atveju vis tiek pasirodys UAC raginimas.

Automatiškai pakeis paketinį failą

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

Pridėkite savo instrukcijas prie šio .bat failo su etikete „START“.

Šis paketinis failas sukuria „Vbscript“ failą, kuris iš naujo paleis paketinį failą kaip administratorių (jei jis dar neveikia pagal administratoriaus teises), naudodamas „runas“ parametrą, reikalingą jį pakelti. „Vbscript“ ir „runas“ metodas buvo aptartas mano sename „Vbscripts“ ir UAC pakeitimas „Windows Vista“ ir naujesnėse versijose.

Kreditai Mattui už šio metodo kamino perpildymą. langai - Kaip aš galiu automatiškai pakelti paketinį failą, kad prireikus jis paprašytų UAC administratoriaus teisių?

Paleisti paketinius failus pagal nutylėjimą

Be aukščiau pateikto automatinio padidinimo metodo, iš kliento pusės galite pakoreguoti registrą, kad paketiniai failai visada pradėtų didėti, rodant UAC raginimą. Tai atliekama keičiant numatytąjį dvigubo paspaudimo veiksmą registre iš „atidaryti“ į „runas“. Atlikite šiuos veiksmus:

Paleiskite Regedit.exe ir eikite į šią vietą:

 „HKEY_CLASSES_ROOT \ batfile \ shell“ 

Dukart spustelėkite (numatytasis) ir nustatykite jo vertės duomenis kaip runas

Uždarykite registro rengyklę.

Po šio pakeitimo paketiniai failai visada bus padidinami, kai dukart spustelėsite. Vykdyti kaip administratorių būtų numatytoji parinktis, rodoma, kai dešiniuoju pelės mygtuku spustelėkite .bat failą.

Redaktoriaus Pasirinkimas