Come avviare un Vbscript in modalità elevata (Esegui come amministratore)

Con l'introduzione di User Account Control (UAC) in Windows Vista, di solito si apre un prompt dei comandi con privilegi elevati per eseguire file batch e script che richiedono privilegi di amministratore. Le applicazioni possono utilizzare i file manifest (utilizzando il flag RequireAdministrator ) per eseguire automaticamente elevati.

Per gli script, questo articolo fornisce alcuni piccoli trucchi accurati che è possibile elevare automaticamente utilizzando il parametro "runas" ShellExecute.

( Vedi anche Come elevare automaticamente un file batch per eseguirlo come amministratore? Per un altro metodo di elevazione automatica.)

Avvia un Vbscript elevato

Grazie a Jim Barry per avermi informato dell'argomento runas nel metodo ShellExecute dell'oggetto Shell.Application. Usando i suggerimenti di Jim, la mia sceneggiatura originale è stata ridotta molto. Utilizzare uno di questi metodi per eseguire VBScripts elevati.

$config[ads_text6] not found

Metodo 1

Ecco uno script di esempio che si riavvia come amministratore (elevato) utilizzando il parametro runas, se lo script non ha argomenti della riga di comando passati. Quando si riavvia lo script come amministratore, è sufficiente passare un argomento falso in modo che lo script non venga eseguito in un ciclo ciclico.

 Se WScript.Arguments.length = 0, quindi imposta objShell = CreateObject ("Shell.Application") 'Passa un argomento fasullo, ad esempio [uac] objShell.ShellExecute "wscript.exe", Chr (34) e _ WScript.ScriptFullName & Chr (34) & "uac", "", "runas", 1 Altro 'Aggiungi qui il tuo codice End If 

Metodo 2

Questo metodo utilizza uno script di avvio che esegue il VBScript principale elevato utilizzando il verbo runas .

Set objShell = CreateObject("Shell.Application") Set FSO = CreateObject("Scripting.FileSystemObject") strPath = FSO.GetParentFolderName (WScript.ScriptFullName) If FSO.FileExists(strPath & "\MAIN.VBS") Then objShell.ShellExecute "wscript.exe", _ Chr(34) & strPath & "\MAIN.VBS" & Chr(34), "", "runas", 1 Else MsgBox "Script file MAIN.VBS not found" End If 

Vedrai la finestra di dialogo di elevazione UAC.

Una volta che l'utente fa clic su Continua per approvare, lo script principale viene avviato come amministratore.

CORRELATO: Come elevare automaticamente un file batch per eseguirlo come amministratore?

Articoli Correlati