Cómo ejecutar vbs como administrador de vbs?

Alguien me puede ayudar con el funcionamiento de la ebv de sí mismo pero con derechos de administrador?
Necesito cambiar el nombre del equipo con Windows 8 a través de VBScript, pero esto es posible solo si puedo ejecutar mi script a través de administrador de línea de comandos (CMD → Ejecutar como Administrador → runScript.vbs). Si me script de inicio con el clásico CMD el equipo no cambia de nombre.

Mi idea es que me script de inicio con derechos de usuario, sin parámetros y si no hay ningún parámetro, la secuencia de comandos de re-ejecuta con derechos de administrador y con el parámetro como identificador «yo soy admin».

¿Alguien sabe cómo puedo hacer esto?

Edición:

He intentado 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
verificación de elevación powertoy blogs.technet.com/b/elevationpowertoys/archive/2010/06/20/…
Este es un gran código, pero creo que no es solución de mi problema. Mi problema no es si el script se está ejecutando como admin o no. Necesito de forma fiable ejecutar como admin. Este código es solo para que veas que estoy en lo correcto?
nope «La siguiente secuencia de comandos se «re-lanzamiento» elevado si no se está ejecutando elevado»
El código sería elevar la secuencia de comandos, pero se le olvidó la cita antes de runas.

OriginalEl autor Daphnis | 2013-07-04

6 Kommentare

  1. 23

    Si UAC está habilitado en el equipo, 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
    Es prácticamente el mismo lo he intentado. Pero no está funcionando. ¿Qué hace exactamente activado UAC decir? He puesto que «no notificarme Nunca», es que las personas con discapacidad? Si intento cambiar UAC para mayor opción de no ayudar.
    «No notificarme nunca» en Win8 no es exactamente movilidad (tendrías que las políticas de uso para deshabilitarlo por completo), pero casi. El código funcionó bien para mí cuando me vuelva a habilitar UAC en mi Win7 testbox. ¿Reiniciar después de cambiar el nivel de UAC?
    No, yo no, pero lamentablemente no los puedo usar activado UAC debido a que este script debe trabajado sin que el usuario. El usuario No va a esperar para solicitar el acceso. Este script es para las pruebas automáticas. No es la otra opción? :/
    No puedes sólo se ejecuta como una tarea programada, entonces?
    Lo siento, a la derecha. Que no me salga el primer guión y que hizo problema. 🙂 Ahora se va.

    OriginalEl autor Ansgar Wiechers

  2. 6

    Agregar esto al principio de tu 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
    Este código funcionó para mí, aceptado respuesta no.
    Entonces su ruta del script, obviamente, tiene espacios, porque esa es la única diferencia entre esta respuesta y la mía.
    ¿Por qué haces esto WshShell = WScript.CreateObject(«WScript.Shell») y, a continuación, utilizar nunca el objeto?
    ¿Por qué tenemos que comprobar «Si WScript.Argumentos.Longitud = 0 » ??? Quiero enviar argumentos….

    OriginalEl autor Hussain

  3. 3

    divertido lil archivo por lotes

    @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%
    Podría usted por favor, describa cómo funciona esta secuencia de comandos?
    este es el sitio que lo explica todo: e-aprender.cn/contenido/wangluowenzhang/84740

    OriginalEl autor funny

  4. 2

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

    La configuración de Aplicaciones para Siempre Petición de Derechos Elevados:

    Programas pueden ser configurados para siempre de la solicitud de elevación sobre el nivel del usuario a través de la configuración del registro en HKCU. Estos valores del registro son eficaces en la marcha, así que se puede establecer inmediatamente antes de lanzar una aplicación en particular e incluso eliminado tan pronto como se inicia la aplicación, si así lo desea. Basta con crear una «Cadena de Valor» bajo»HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Capas» para la ruta de acceso completa a un archivo ejecutable con un valor de «RUNASADMIN». A continuación se muestra un ejemplo para CMD.

    Windows Registry Editor Version 5.00
    [HKEY_Current_User\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
    "c:\\windows\\system32\\cmd.exe"="RUNASADMIN"
    Pero necesito privilegios elevados para editar la configuración del registro, en primer lugar, no? Tipo de derrotas el propósito.
    stackoverflow.com/questions/47895544/… y stackoverflow.com/questions/47902221/…

    OriginalEl autor Amit

  5. 2

    `Mi vbs ruta de acceso de archivo :

    D:\QTP la Práctica\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 la búsqueda de google y algunos ajustes, trabajando para mí

    OriginalEl autor Hari Krishna

  6. 1

    Esta es la solución universal para este:

    RunAsAdmin -1
    Main
    
    Sub RunAsAdmin(Arguments)
        If Not WScript.Arguments.Named.Exists("elevate") Then
            If (WScript.Arguments.Count = Arguments) Or (Arguments < 0) Then
                ArgsList = ""
                For i = 1 To WScript.Arguments.Count
                    ArgsList = ArgsList & """ """ & WScript.Arguments(i - 1)
                Next
                CreateObject("Shell.Application").ShellExecute WScript.FullName, """" & WScript.ScriptFullName & ArgsList & """ /elevate", "", "runas", 1
            End If
            WScript.Quit
        End If
    End Sub
    
    Sub Main()
        'Instruction block
    End Sub

    OriginalEl autor Riccardo La Marca

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea