Cómo iniciar un Vbscript en modo elevado (Ejecutar como administrador)

2015-07-26 17:23:48
Principal·Microsoft·Cómo iniciar un Vbscript en modo elevado (Ejecutar como administrador)

Con la introducción del Control de cuentas de usuario (UAC) en Windows Vista, generalmente abre un símbolo del sistema elevado para ejecutar archivos por lotes y secuencias de comandos que necesitan privilegios administrativos. Las aplicaciones pueden hacer uso de archivos de manifiesto (usando el indicador RequireAdministrator ) para ejecutarse de forma automática elevada.

Para las secuencias de comandos, este artículo le proporciona algunos pequeños trucos que puede usar automáticamente con el parámetro ShellExecute "runas".

( Consulte también ¿Cómo elevar automáticamente un archivo por lotes para ejecutarlo como administrador? Para otro método de elevación automática).

Lanzar un Vbscript elevado

Gracias a Jim Barry por informarme sobre el uso del argumento runas en el método ShellExecute del objeto Shell.Application. Usando las sugerencias de Jim, mi guión original se condensó en gran medida. Use uno de estos métodos para ejecutar VBScripts elevados.

Método 1

Aquí hay un script de muestra que se reinicia como administrador (elevado) utilizando el parámetro runas, si el script no tiene argumentos de línea de comandos pasados. Al volver a iniciar el script como administrador, simplemente pase un argumento falso para que el script no se ejecute en un ciclo cíclico.

 Si WScript.Arguments.length = 0 Entonces establezca objShell = CreateObject ("Shell.Application") 'Pase un argumento falso, diga [uac] objShell.ShellExecute "wscript.exe", Chr (34) & _ WScript.ScriptFullName & Chr (34) & "uac", "", "runas", 1 Else 'Agregue su código aquí Fin Si 

Método 2

Este método utiliza un script de inicio que ejecuta el VBScript principal elevado utilizando el 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 

Verá el cuadro de diálogo de elevación UAC.

Una vez que el usuario hace clic en Continuar para aprobar, el script principal se inicia como administrador.

RELACIONADO: ¿Cómo elevar automáticamente un archivo por lotes para ejecutarlo como administrador?

La Elección Del Editor