Usuario
Ejecutar VBS como administrador sin Confirmacion de UAC

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
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
MVP - MCSE - MCSA2012
Buenos Aires, Argentina
El Blog de los paso a paso
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.
-
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
-
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
MVP - MCSE - MCSA2012
Buenos Aires, Argentina
El Blog de los paso a paso
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.
-
::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.vbsEXIT
- Editado DiaBlood666 jueves, 24 de agosto de 2017 4:16
- Propuesto como respuesta Daniel Fierro Perez sábado, 3 de febrero de 2018 2:17
-
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.
-
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