none
Ejecutar VBS como administrador sin Confirmacion de UAC RRS feed

  • Pregunta

  • Estimados, 

    Espero estén bien. Siempre me he valido de esta extraordinario espacio para resolver muchos de los temas que manejo día a día y nunca necesite registrarme o preguntar porque encontraba en los foros la ayuda necesaria. En esta oportunidad e "PATIADO" tanto la Internet que tuve que registrarme aqui para consultarles por este problema que me traee loco. Este es lo que estoy tratando de hacer:

    Estoy implementando una VPN cisco con el Cliente Cisco VPN. Las configuraciones en el ROUTER están completas y funcionando. El cliente se conecta perfectamente y tiene acceso al segmento de red que se le esta asignando. Pero el problema comienza cuando trato de acceder a los recursos de los otros segmentos de red. Se verifico las configuraciones del ROUTER, del cliente VPN, de cambiaron las configuraciones en el router de nuevo, etc, etc, etc, (Router cisco 2900).

    Después de tanto patear Internet, un par de amigos e infinitos manuales, 200 horas de videos de Youtube, conseguí como realizar modificaciones a las configuraciones del adaptador de red a través de VBS. El Script funciona perfectamente. Agrega rutas dinámicas, Agrega el Gateway, agrega los DNS. El Script funciona de maravillas. PEEEEEROOOOOOOOOO.........y aquí viene el "pero" solo funciona como ADMINISTRADOR.

    He hecho script para que corra como administrador, archivos BATCH para que se ejecute como administrador y NADA de NADA. 

    AHORA MI PREGUNTA ES: Sabe alguno aquí como hacer que se ejecute ese VBS script como administrador en WINDOWS 10, sin que pida confirmación ni clave ni nada con privilegios elevados?

    • Antes de contestar amigos es necesario saber:
    • No puedo instalar un software para que lo ejecute como administrador como las herramientas de PSTOLL
    • No puedo convertir al usuario en administrador.
    • El VBS Script se ejecuta al conectarse el cliente de Cisco VPN por lo que debe ser local, no puedo conectarlo por política o ejecutarlo desde la red porque no tiene conexión, solo puede ejecutarse local.

    Esta demás decirle que mi agradecimiento sera del tamaño del ESPACIO y MAS ALLÁ a aquellos que puedan ayudarme a conseguir la forma de que al conectarse el cliente VPN cisco, este ejecute script como ADMINISTRADOR cambie la configuración SIN HACER NINGUNA PAUSA O PREGUNTA O PIDA CLAVE.

    Saludos Y gracias

    PD: Disculpen lo largo, quise ser explicito porque se que quizás existan temas relacionados en estos foros, pero ninguna funciona, por lo menos en Windows 10, no!


    • Editado Pedro_LGC viernes, 24 de febrero de 2017 21:01
    viernes, 24 de febrero de 2017 20:59

Todas las respuestas

  • Hola Pedro_LGC, a mi entender es más una pregunta para el soporte de Cisco :)

    Por acá hay varios compañeros con experiencia en el tema, pero mientras ¿haz probado con RUNAS?

    Y más con "RUNAS ... /SAVECRED". No es bueno desde el punto de vista seguridad pero quizás te sirva

    Por otra parte ¿qué agrega? ¿sólo rutas estáticas? porque para eso no es necesario que esté conectada la VPN, y por lo tanto se puede hacer con un "startup script" (por máquina, no por usuario)

     


    Guillermo Delprato
    Buenos Aires, Argentina
    El Blog de los paso a paso

    MVP - MCSE - MCSA2012
    MCITP: Enterprise Administrator / Server Administrator
    MCTS: Active Directory/Network Configuration/Applications Configuration/Server Virtualization/Windows 7 Configuration/Windows 7 & Office 2010 Deployment/Vista Configuration

    Este mensaje se proporciona "como está" sin garantías de ninguna clase. Usted asume todos los riesgos.

    viernes, 24 de febrero de 2017 21:19
  • Hola Guillermo, Buen dia.

    Gracias por la pronta Respuesta.

    Realmente como coloco en la pregunta, ya el tema con cisco lo agote, porque ya las configuraciones necesarias en el router están completadas. 

    Ahora bien, la idea es que este SCRIP se ejecute una vez que el cliente VPN cisco se conecte al router, de forma automática ya que no deseo la intervención del usuario, o sea que esto sea transparente para el mismo. 

    Y debido a que tengo mas de 1 segmento de red, necesito agregarle las rutas estáticas y configurarle el DNS, pero SOLO al adaptador de CISCO, no a los otros.

    El RUNAS lo probé con el siguiente SCRIPT:

    Dim   objNetwork, WshShell

    Set objNetwork = Wscript.CreateObject("WScript.Network")

    Set WshShell = CreateObject("WScript.Shell")
    ''WScript.Echo "Ejecutando Configuración de Red..."
    strProgram = "C:\Users\{usuario}\Desktop\archivo.vbs" ''/Programa a Ejecutar


    WshShell.Run "cmd.exe /c runas /env /u:{usuarioadm} " & chr(34) & strProgram & chr(34)
    Do Until Success = True
      Success = WshShell.AppActivate("C:\WINDOWS")
      Wscript.sleep 2000
    Loop
    WshShell.SendKeys "{clave}"
    WshShell.SendKeys "{ENTER}"

    NOTA: En donde "archivo.vbs" contiene la configuración necesaria para la configuración de red cuando se conectan por VPN. Funciona perfecto cuando se ejecuta en la ventana de comando como administrador, de resto no se ejecuta.

    Si alguien tiene experiencia con la ejecución de scripts como administrador sin ninguna intervención del usuario. Estaría muy  agradecido.

    Saludos

    lunes, 27 de febrero de 2017 13:23
  • Una posibilidad que para mí sería mucho más lógica ¿por qué no defines las rutas en el Router? el cliente siempre se lo manda al Router con VPN, y éste redirige al resto de la red. Esto también depende de cómo haz configurado la VPN. Si el direccionamiento IP de la VPN coincide con el de la red, no funciona como Router, sino como "ARP proxy", en cambio si es diferente entonces "rutea"

    Por otra parte, si conoces las direcciones IP, entonces la tabla de enrutamiento se puede definir perfectamente con un "start script" de máquina ya que no necesita que esté la conexión para poder agregar entradas

    Para que sea totalmente transparente al usuario Microsoft tiene otra solución :)
    Se llama "Direct Access"

    Windows Server 2012: DirectAccess Paso a Paso, Sencillo y Fácil | WindowServer:
    https://windowserver.wordpress.com/2012/11/02/windows-server-2012-directaccess-paso-a-paso-sencillo-y-fcil/

     


    Guillermo Delprato
    Buenos Aires, Argentina
    El Blog de los paso a paso

    MVP - MCSE - MCSA2012
    MCITP: Enterprise Administrator / Server Administrator
    MCTS: Active Directory/Network Configuration/Applications Configuration/Server Virtualization/Windows 7 Configuration/Windows 7 & Office 2010 Deployment/Vista Configuration

    Este mensaje se proporciona "como está" sin garantías de ninguna clase. Usted asume todos los riesgos.

    lunes, 27 de febrero de 2017 14:20
  • ::Util para ejecutar vbscript como administrador.

    @echo off

    REM .bat con permisos de administrador
    :-------------------------------------
    REM  --> Analizando los permisos
        IF "%PROCESSOR_ARCHITECTURE%" EQU "amd64" (
    >nul 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system"
    ) ELSE (
    >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
    )

    REM --> Si hay error es que no hay permisos de administrador.
    if '%errorlevel%' NEQ '0' (
        echo Solicitando permisos de administrador... Requesting administrative privileges... Anfordern Administratorrechte ...
        goto UACPrompt
    ) else ( goto gotAdmin )

    :UACPrompt
        echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
        set params = %*:"=""
        echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"

        "%temp%\getadmin.vbs"
        del "%temp%\getadmin.vbs"
        exit /B

    :gotAdmin
        pushd "%CD%"
        CD /D "%~dp0"
    :--------------------------------------  

    REM   INCLUYE AQUÍ TU CÓDIGO DEL FICHERO

    ::/Programa a Ejecutar
    start /I /MIN C:\Users\{usuario}\Desktop\archivo.vbs

    EXIT


    jueves, 24 de agosto de 2017 4:13
  • Hola, disculpa si te molesto.

    Como puedo hacer para que una vez que se aya ejecutado como administrador, se ejecute pero oculto.

    Es que son varios procesos que quiero hacer y puede que en el transcurso el usuario me cierre la ventana y me estropee todo, espero que me puedas ayudar.

    sábado, 3 de febrero de 2018 2:17
  • Hola, puedes incluir el codigo de ejecutar como administrador en el propio archivo VBS

    Pon el siguiente código al PRINCIPIO del VBS:


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

    martes, 22 de diciembre de 2020 22:42