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.

Microsoft Edge 113 stabile migliora la modalità di sicurezza avanzata

Microsoft Edge 113 stabile migliora la modalità di sicurezza avanzata

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

Leggi di più

Funzionalità nascoste in Windows Build 23451 (Dev)

Funzionalità nascoste in Windows Build 23451 (Dev)

Windows Build 23451, rilasciato oggi agli addetti ai lavori nel canale Dev, include diverse nuove...

Leggi di più

Presto sarai in grado di bloccare i widget di Windows 11 sul desktop

Presto sarai in grado di bloccare i widget di Windows 11 sul desktop

Microsoft prevede di implementare la possibilità di bloccare i widget sul desktop in Windows 11. ...

Leggi di più