Come elevare automaticamente un file batch per eseguirlo come amministratore
A volte è necessario creare un file batch che includa comandi che richiedono diritti elevati. A causa della funzione UAC inclusa in Windows da Windows Vista, quando si avvia un file batch, si apre senza i diritti di accesso richiesti a meno che non si faccia clic con il pulsante destro del mouse e si selezioni "Esegui come amministratore" dal contesto menù. Ecco come puoi creare un file batch che si eleverà automaticamente.
Annuncio
Prima di continuare, guarda come aggiungere un file batch (*.bat) al nuovo menu di Esplora file. Inserisci il seguente contenuto all'inizio del tuo file batch:
:: Controlla e ottieni automaticamente i diritti di amministratore V2. @eco spento. CLS. ECO. ECHO ECHO Esecuzione della shell di amministrazione. ECO :init. setlocal DisableDelayedExpansion. imposta "batchPath=%~0" per %%k in (%0) imposta batchName=%%~nk. imposta "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) ECO. ECO ************************************** ECHO che invoca UAC per l'escalation dei privilegi. ECHO **************************************** ECHO Set UAC = CreateObject^("Shell. Applicazione"^) > "%vbsGetPrivileges%" ECHO args = "ELEV " >> "%vbsGetPrivileges%" ECHO Per ogni strArg in WScript. Argomenti >> "%vbsGetPrivileges%" ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%" ECHO Successivo >> "%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 Esegui shell come amministratore (esempio) - inserisci qui il codice come preferisci. ECHO %batchName% Argomenti: %1 %2 %3 %4 %5 %6 %7 %8 %9.
Inserisci i tuoi comandi batch che richiedono l'elevazione sotto l'ultima riga.
Il codice fornito creerà un file VBS speciale che lo riavvierà se non è in esecuzione come amministratore. Quindi, se lo avvii con autorizzazioni limitate, riceverai un prompt UAC che ti chiederà di elevare i privilegi prima che esegua i suoi comandi!
Ecco come appare in Windows 10:
I crediti per questo codice vanno a opaco.