No puedo elevar privilegios con runas para ejecutar: MSC y CPL

Iniciado por d3xf4ult, 7 Abril 2014, 21:58 PM

0 Miembros y 1 Visitante están viendo este tema.

d3xf4ult

Lenguaje:
Batch Processing


Problema:
Hola,

Tengo un problemilla con esto, en un pasado el siguiente script se me ejecutaba correctamente permitiéndome elevar privilegios para ejecutar las consolas de Microsoft msc. Y ahora no sé es por que y que yo sepa o recuerde no tocara nada esto dejo de hacer lo que le pedía.
Lo que conseguía con esto, como seguro podeis llegar a ver, es que desde un usuario raso sin privilegios, poder ejecutar un runas facilmente si meter el todo el "chorizo" de comandos para elevar privilegios a OTRO usuario que tengo en el equipo con permisos más altos.

Es curioso que el comando tal cual me funcione, sin embargo dentro de script no. Que estoy haciendo mal??
Ya probé en cambiar el path de %systemroot% a %windir% (que es lo mismo...) y de ponerlo con ruta absoluta (c:\Windows\...) por si los % se me estaban interpretando dentro del script como una variable pero aún así nada.


Código:
Código (dos) [Seleccionar]
   @echo off
   :menu
   cls
   echo =============================
   echo  [1] MSC (Microsoft Console)
   echo  [2] CPL (Control Panel)
   echo  [3] Exit
   echo =============================
   
   set/p opc=
   if %opc%==1 goto msc
   if %opc%==2 goto cpl
   if %opc%==3 goto salir
   
   :msc
   set /p vmsc=
   runas /user:EQUIPO\USUARIO "mmc %systemroot%\system32\%vmsc%"
   
   :cpl
   set /p vcpl=
   runas /user:EQUIPO\USUARIO "control %vcpl%"
   
   :salir
   exit




Error:
No sale ningún error visible, simplemente después de elegir la opción del menú msc o cpl y escribir usuario y contraseña al pulsar Enter no sale nada, salta a la siguiente linea y se queda ahí sin ninguna acción.


Otras Observaciones:
EQUIPO\USUARIO, sería el nombre de mi equipo y usuario local con privilegios para ejecutar los msc o cpl.
Lo estoy probando en un: Windows 7 Enterprise x64 SP1

Eleкtro

#1
Cita de: d3xf4ult en  7 Abril 2014, 21:58 PM
Error:
No sale ningún error visible, simplemente después de elegir la opción del menú msc o cpl y escribir usuario y contraseña al pulsar Enter no sale nada, salta a la siguiente linea y se queda ahí sin ninguna acción.

¿Sin error de ningín tipo?

Mejora la sintaxis del código encerrando las cadenas con comillas dobles y especificando la ruta absoluta, y añádele un Pause después de la instrucción para ver si muestra algún mensaje de error antes de la pausa:
Código (DOS) [Seleccionar]

Set /P "VMSC="
"%systemroot%\system32\RunAs.exe" /NoProfile /User:"EQUIPO\USUARIO" "\"%systemroot%\system32\mmc.exe\" \"%systemroot%\system32\%VMSC%\""
Pause


PD: La verdad es que el comando en tu código debería funcionar, pero como alternativa podrías usar la aplicación PSExec.

Saludos








d3xf4ult

#2
No quería hacer uso de ninguna pstool. Esto antes si me conseguía abrir la ventana msc o cpl con privilegios y ahora no. No hace nada. Introduces los valores pulsas Enter y nada... no hace nada ni muestra nada.

Probé a referenciarlos con comillas y tampoco nada...

Por cierto que hace el /NoProfile ??




Después de probar y probar. Veo que lo que estaba fallando era el comando la sintaxis del Runas, poner la ruta absoluta en eso.
"%systemroot%\system32\RunAs.exe" /NoProfile
Ya que ahora si me pregunta la password del usuario a elevar permisos.

Gracias @Elektro eres un crack!

Dejo el código batch tal cual como lo tengo ahora y funcionando como debería.

@echo off
:menu
cls
echo =============================
echo  [1] MSC (Microsoft Console)
echo  [2] CPL (Control Panel)
echo  [3] Exit
echo =============================

set/p "opc="
if %opc%==1 goto msc
if %opc%==2 goto cpl
if %opc%==3 goto salir

:msc
set /p "vmsc="
"%systemroot%\system32\RunAs.exe" /NoProfile /User:"EQUIPO\USUARIO" "mmc %systemroot%\system32\%vmsc%\"

:cpl
set /p "vcpl="
"%systemroot%\system32\RunAs.exe" /NoProfile /User:"EQUIPO\USUARIO" "control %vcpl%"

:salir
exit


Saludos!




[Elektro]: De nada, pero no hagas doble post leñe :P

Eleкtro

Cita de: RunAs /?
   /noprofile        Especifica que el perfil de usuario no debe cargarse.
                       Esto permite que las aplicaciones se carguen más rápidamente, pero puede ocasionar que algunas aplicaciones no se ejecuten correctamente.
( sólamente era por probar si así funcionaba )

un saludo!