¿Cómo ejecutar vbs como administrador desde vbs?

¿Alguien puede ayudarme a ejecutar vbs desde sí mismo pero con derechos de administrador? Necesito cambiar el nombre de la computadora con Win8 a través de vbs, pero solo es posible si ejecuto mi script a través de la línea de comando del administrador (cmd -> Ejecutar como administrador -> runScript.vbs). Si comienzo el script con el cmd clásico, la computadora no cambia de nombre.

Mi idea es comenzar un script con derechos de usuario, sin parámetros y, si no hay ningún parámetro, el script se ejecuta con derechos de administrador y con un parámetro como identificador “I’m admin”.

¿Alguien sabe cómo puedo hacer esto? Gracias. McAndy

editar:

Intenté esto:

If WScript.Arguments.Count = 0 Then Set objShell = CreateObject("Shell.Application") objShell.ShellExecute "wscript.exe", "c:\Users\admin\Documents\selfConfigure.vbs -1", "", runas", 1 End If 

Si UAC está habilitado en la computadora, algo como esto debería funcionar:

 If Not WScript.Arguments.Named.Exists("elevate") Then CreateObject("Shell.Application").ShellExecute WScript.FullName _ , """" & WScript.ScriptFullName & """ /elevate", "", "runas", 1 WScript.Quit End If 'actual code 

Agregue esto al comienzo de su archivo:

 Set WshShell = WScript.CreateObject("WScript.Shell") If WScript.Arguments.Length = 0 Then Set ObjShell = CreateObject("Shell.Application") ObjShell.ShellExecute "wscript.exe" _ , """" & WScript.ScriptFullName & """ RunAsAdministrator", , "runas", 1 WScript.Quit End if 

Buen artículo para opciones de elevación – http://www.novell.com/support/kb/doc.php?id=7010269

Configuración de aplicaciones para solicitar siempre derechos elevados:

Los progtwigs se pueden configurar para solicitar siempre la elevación en el nivel de usuario a través de la configuración de registro en HKCU. Estas configuraciones de registro son efectivas sobre la marcha, por lo que pueden establecerse inmediatamente antes de iniciar una aplicación en particular e incluso eliminarse tan pronto como se lance la aplicación, si así lo desea. Simplemente cree un “Valor de cadena” en “HKCU \ Software \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers” para la ruta completa a un ejecutable con un valor de “RUNASADMIN”. A continuación se muestra un ejemplo de CMD.

 Windows Registry Editor Version 5.00 [HKEY_Current_User\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers] "c:\\windows\\system32\\cmd.exe"="RUNASADMIN" 

archivo batch diversión lil

 @set E=ECHO &set S=SET &set CS=CScript //T:3 //nologo %~n0.vbs /REALTIME^>nul^& timeout 1 /NOBREAK^>nul^& del /Q %~n0.vbs&CLS @%E%off&color 4a&title %~n0&%S%CX=CLS^&EXIT&%S%BS=^>%~n0.vbs&%S%G=GOTO &%S%H=shell&AT>NUL IF %ERRORLEVEL% EQU 0 ( %G%2 ) ELSE ( if not "%minimized%"=="" %G%1 ) %S%minimized=true & start /min cmd /C "%~dpnx0"&%CX% :1 %E%%S%%H%=CreateObject("%H%.Application"):%H%.%H%Execute "%~dpnx0",,"%CD%", "runas", 1:%S%%H%=nothing%BS%&%CS%&%CX% :2 %E%%~dpnx0 fvcLing admin mode look up&wmic process where name="cmd.exe" CALL setpriority "realtime"& timeout 3 /NOBREAK>nul :3 %E%x=msgbox("end of line" ,48, "%~n0")%BS%&%CS%&%CX% 

`Mi ruta de archivo vbs:

D: \ QTP Practice \ Driver \ Testany.vbs ‘

 objShell = CreateObject("Shell.Application") objShell.ShellExecute "cmd.exe","/k echo test", "", "runas", 1 set x=createobject("wscript.shell") wscript.sleep(2000) x.sendkeys "CD\"&"{ENTER}"&"cd D:"&"{ENTER}"&"cd "&"QTP Practice\Driver"&"{ENTER}"&"Testany.vbs"&"{ENTER}" 

–desde búsqueda en google y algo de ajuste, trabajando para mí