Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: TMarmol en 4 Abril 2012, 03:19 am



Título: [Ayuda] Programa .bat
Publicado por: TMarmol en 4 Abril 2012, 03:19 am
Bueno estoy creando un programa que haga diversas funciones para las cuales necesita estar en modo administrador, como puedo hacer para que el programa detecte si esta en modo admin o no?

yo habia pensado convariables pero no se como hacerlo.
Lo que quiero es si esta en modo admin no pase nada se ejecute el programa y ya pero si no lo esta que salte un msgbox con un mensaje de alerta y que se cierre el programa.

es en .bat por si no habeis leido el titulo


Título: Re: [Ayuda] Programa .bat
Publicado por: $Edu$ en 4 Abril 2012, 03:27 am
Utilizando el comando && seguido de un comando clasico de administrador, entonces sabras si el anterior comando se ejecuto o no, si no se ejecuto es porque no es admin..

Dije ese disparate para que me quede este post como que participe y luego en casa hago la prueba que me quiero sacar esa duda que se me ocurrio xD


Título: Re: [Ayuda] Programa .bat
Publicado por: Eleкtro en 4 Abril 2012, 05:10 am
Hombre, Lo que dijo $Edu$ es una opción, Sería algo así:

Código
  1. REM Comando que requiera privilegios de Admin para "probar" los privilegios + el resto de comandos:
  2. Mkdir "%Windir%\System32\Test" && comando1 & comando2 &...


También puedes hacerlo de la siguiente manera, Comprobando si el usuario está dentro del grupo "administradores":

Código
  1. @Echo OFF
  2.  
  3. NET User "%username%" | find "Admin" >NUL
  4. IF NOT %ErrorLevel% EQU 0 (
  5.     ECHO: msgbox "No tiene privilegios de Administrador.",16,"ALERTA" > "%TEMP%\Msgbox.vbs"
  6.     Start /B Wscript "%TEMP%\Msgbox.vbs"
  7.     Exit /B 1
  8. )
  9.  
  10. REM El resto de tu script aquí...
  11.  

Salu2.


Título: Re: [Ayuda] Programa .bat
Publicado por: TMarmol en 4 Abril 2012, 15:19 pm
Hombre, Lo que dijo $Edu$ es una opción, Sería algo así:

Código
  1. REM Comando que requiera privilegios de Admin para "probar" los privilegios + el resto de comandos:
  2. Mkdir "%Windir%\System32\Test" && comando1 & comando2 &...


También puedes hacerlo de la siguiente manera, Comprobando si el usuario está dentro del grupo "administradores":

Código
  1. @Echo OFF
  2.  
  3. NET User "%username%" | find "Admin" >NUL
  4. IF NOT %ErrorLevel% EQU 0 (
  5.     ECHO: msgbox "No tiene privilegios de Administrador.",16,"ALERTA" > "%TEMP%\Msgbox.vbs"
  6.     Start /B Wscript "%TEMP%\Msgbox.vbs"
  7.     Exit /B 1
  8. )
  9.  
  10. REM El resto de tu script aquí...
  11.  

Salu2.
Gracias funciono pero sigo teniendo un problema:
El primer codigo funciona pero una vez que ejecutas el programa en modo admin,
las siguientes veces pone que el archivo ya existe, he porbado con el comando del:

Código
  1. @echo off
  2. Mkdir "%Windir%\System32\Test" &&goto :2 &del /q "%Windir%\System32\Test"
  3. echo Para continuar ejecute el Installer en modo Admin
  4. pause>nul

pero no lo elimina

y el segundo comando se queda la ventana en negro o se cierra rapidamente


Título: Re: [Ayuda] Programa .bat
Publicado por: $Edu$ en 4 Abril 2012, 15:51 pm
Es solo un ejemplo.. supuestamente Elektro H@acker si creas un directorio en System32 es porque sos administrador, sino no, pero obviamente si no borras la carpeta la proxima vez dira que existe.

Entonces haces asi igual:

Código
  1. @echo off
  2. Mkdir "%Windir%\System32\Prueba3" &&goto :admin
  3. echo No eres administrador, ejecute el Installer como administrador.
  4. pause>nul
  5.  
  6. :admin
  7. rd /q /s "%Windir%\System32\Prueba3"
  8. echo Bienvenido a la instalacion...
  9. pause>nul
  10.  
  11.  

Ya me diras si anda o no, que no tengo para probar


Título: Re: [Ayuda] Programa .bat
Publicado por: Eleкtro en 4 Abril 2012, 15:52 pm
   
Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.



Es un método más fiable el 2º... Pero bueno si quieres usar el primero, Necesitas usar RD:

Cita de: CMD
RD /?
Quita (elimina) un directorio.
RD [/S] [/Q] [unidad:]ruta

Código
  1. RD /Q "%Windir%\System32\Test"


PD: Dices que el segundo comando se te queda la ventana en negro, Como ya explicó $Edu$ de eso se trata xD, Si el primero falla, el resto de la serie de comandos que le sigan no se ejecutarán (Siempre que uses el operador "&&" en todos los comandos que le sigan.).


Salu2.


Título: Re: [Ayuda] Programa .bat
Publicado por: TMarmol en 8 Abril 2012, 15:04 pm
Gracias! ya me funciono podeis cerrarlo