Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: flepe en 7 Mayo 2014, 11:32 AM

Título: Ejecutar un .bat al apagado del equipo.(Gpedit.msc)
Publicado por: flepe en 7 Mayo 2014, 11:32 AM
Lo hago con el gpedit.msc el problema es que el proceso de apagado lo primero que hace es cerrar las conexiones, mi .bat es para insertar unos datos en el servidor y claro sin conexión no se puede, existe alguna manera de variar la secuencia de apagado para que el .bat sea lo primero que se ejecute.
Título: Re: Ejecutar un .bat al apagado del equipo.(Gpedit.msc)
Publicado por: Mad Antrax en 7 Mayo 2014, 12:51 PM
No conozco tal cosa (no digo que no se pueda hacer), pero se me ocurre la siguiente posibilidad:

Crea un BAT que realice las operaciones que desees y al finalizar el proceso llama al "shutdown -s -f -t 0"

Dicho BAT lo dejas en el escritorio con el nombre: APAGAR EQUIPO

Así el usuario solo tendrá que pulsar el BAT, se ejecutará tu función y finalmente se apagará.

Saludos
Título: Re: Ejecutar un .bat al apagado del equipo.(Gpedit.msc)
Publicado por: flepe en 7 Mayo 2014, 14:02 PM
La estructura del .bat es la siguiente :

start http://192.168.8.74/hora_apagado.php
ping -n 10 192.168.8.74

(Lo del ping es un comodin que he usado para que mientras lo hace le de tiempo a abrir el explorer y ejecutar hora_apagado.php)

La estructura del .php es la siguiente y esta colocado en el servidor:


<?php
$conex = mysql_connect("localhost", "root", "");
mysql_select_db("ala1", $conex);       
$disponibilidad = 1;
 
      
        if($disponibilidad == 1) //si el nombre de usuario no coincide salvaremos los valores de la variable POST y los insertaremos en nuestra tabla usuarios
        {
        $IP  = $_SERVER["REMOTE_ADDR"]."";         // IP de origen
      @$Puerto .= $_SERVER["REMOTE_PORT"]."";       // Puerto de origen. Es innecesario, pero permite validar algunas cosas.
      @$Fechahora .= date("d/m/Y.H:i:s")."";             // Fecha y hora
      @$Pagina .= $_SERVER["REQUEST_URI"]."";         // Página solicitada
      @$Navegador .= $_SERVER["HTTP_USER_AGENT"]."";
      $consulta1 = "INSERT INTO logg (id_log,IP, Puerto,Fechahora,Pagina,Navegador,USER,fecha_apagado,tipo)
      VALUES ('','$IP' ,'$Puerto', '', '$Pagina','$Navegador','',now(),'2')";

      mysql_query($consulta1);
      }
?>      


Por si a alguien le sirve esto en un futuro :)


Ahora mi pregunta para terminar de dejarlo Chapó hay alguna manera de ocultar las intrucciones que aparecen en la ventana del CMD cuando se esta ejecutando dicho .bat
Título: Re: Ejecutar un .bat al apagado del equipo.(Gpedit.msc)
Publicado por: Mad Antrax en 7 Mayo 2014, 14:14 PM
No conozco mucho BAT, pero prueba lo siguiente:

@echo off
@start http://192.168.8.74/hora_apagado.php
@ping -n 10 192.168.8.74
shutdown -s -f -t0
Título: Re: Ejecutar un .bat al apagado del equipo.(Gpedit.msc)
Publicado por: f7eo en 18 Mayo 2014, 21:55 PM
Puedes "ensamblar" el .bat en un executable (.exe) y hay le ocultas la consola. jaja

http://www.f2ko.de/programs.php?lang=en&pid=b2e
Título: Re: Ejecutar un .bat al apagado del equipo.(Gpedit.msc)
Publicado por: daryo en 18 Mayo 2014, 22:20 PM
ping -n 10 192.168.8.74
mejor asi
ping -n 10 127.0.0.1
Título: Re: Ejecutar un .bat al apagado del equipo.(Gpedit.msc)
Publicado por: PedroDJavier en 19 Mayo 2014, 15:32 PM
Mira, no uses ping ... usa este comando que es mas preciso para esperar un X tiempo


timeout /t TIEMPOAESPERAR


Y ale!
Un saludo
Título: Re: Ejecutar un .bat al apagado del equipo.(Gpedit.msc)
Publicado por: Zomkar en 19 Mayo 2014, 22:27 PM
Cita de: flepe en  7 Mayo 2014, 11:32 AM
Lo hago con el gpedit.msc el problema es que el proceso de apagado lo primero que hace es cerrar las conexiones, mi .bat es para insertar unos datos en el servidor y claro sin conexión no se puede, existe alguna manera de variar la secuencia de apagado para que el .bat sea lo primero que se ejecute.

Idea:

windows cierra sesión primero y después apaga equipo, porque no lo pones en el perfil de usuario y no de maquina?

Idea2:

anular apagado de windows en tu propio bat hasta que acabes, así

Código (dos) [Seleccionar]

@echo off
REM win7
shutdown /a
REM winxp  shutdown -a
REM tu codigo
REM apagas pc


Ah y usando echo off solo se verán algunos detalles minimos en el CMD, pero se ve el CMD, claro..
Título: Re: Ejecutar un .bat al apagado del equipo.(Gpedit.msc)
Publicado por: f7eo en 24 Mayo 2014, 01:45 AM
VBScript (.vbs)


set objshell = createobject("wscript.shell")
objshell.run "tu_archivo.bat",vbhide