Windows Tips & News

Come elevare automaticamente un file batch per eseguirlo come amministratore

4 risposte

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.

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.

Archivi di Windows 10 build 18219

Questo sito utilizza i cookie per migliorare la tua esperienza durante la navigazione nel sito. D...

Leggi di più

Come terminare un processo in Windows 10

Come terminare un processo in Windows 10

CONSIGLIATO: Fare clic qui per risolvere i problemi di Windows e ottimizzare le prestazioni del s...

Leggi di più

Problemi noti per l'aggiornamento di maggio 2019 di Windows 10 versione 1903

RiepilogoAggiornamento in corsoStatoUltimo aggiornamentoLa luminosità del display potrebbe non ri...

Leggi di più