Como apagar una pc remotamente

Hola compañeros me voy iniciando en esto de java.
Me gustaria apagar mi servidor desde mi maquina pero me imagino que es con sockets o al asi.
Como lo podria hacer.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

¿Código?

¿Y tienes algún código con el que estés trabajando para poder hacer esto que quieres?

Si, podrías tener un programa

Si, podrías tener un programa corriendo en Java y que tenga un socket abierto. Cuando tu te conectes a ese socket de forma remota y le des la instrucción correcta y obvio validando que venga de una fuente confiable ( credenciales, whitelist etc. ) puedes ejecutar cualquier comando, como el comando shutdown de Windows.

Hola

Que tal compañero como comento me voy iniciando en esto de java pero agradezco la respuesta.
Mira lo que pasa es que si lo puedo realizar pero solamente para mi maquina mi en la que estoy trabajando y efectivamente es con un shutdown /p para apagar la maquina pero como les comento que me gustaría hacerlo para una maquina remota por medio de una ip no tendrías un ejemplo por el cual me pueda bazar te agradezco por la atención compañero.

Hola hola

oye compañero ya logre mandar mensaje a una clase llamada Serverr y los resibe pero no logro ejecutar un metodo dentro de un ObjectOutputStream
para poder ejecutar Runtime como vez en el ejemplo que te pongo la instancie la clase apagar pero no la logro ejecutar dentro de un ObjectOutputStream
para que se ejecute en la otra pc no en la mia.

Socket cliente = new Socket ("192.168.1.74",2017);
Apagar apagar = new Apagar();
ObjectOutputStream mensaje = new ObjectOutputStream(cliente.getOutputStream());
apagar.exec("calc");
mensaje.writeObject("hola servidor");
ObjectInputStream entrada = new ObjectInputStream(cliente.getInputStream());
String mensaje2 = (String)entrada.readObject();
System.out.println("mensaje desde el servidor "+ mensaje2);
cliente.close();
System.out.println("Conexion serrada");

Re: hola hola

 

Humm… Prueba con lo siguiente:

Runtime.getRuntime().exec("cmd /C calc");

Debes de tener un servidor

Debes de tener un servidor corriendo y en ese servidor ejecutar el comando shutdown.

// código ejecutado en el servidor ( en la máquina remota pues )
...
ServerSocket server = new ServerSocket();

Socket client = server.accept();
if ( "OK".equals(leer( client.geInputStream() ) ) {
    new ProcessBuilder("shutdown").start();
}
...

Compañero

Si se ejecuta bien pero lo hace en la pc local no lo hace en la pc remota lo que quiero hacer es que asi como mandas un mensaje y lo recibe el servidor asi mandar la instrucción y que se ejecute pero el la pc remota.
Gracias por las prontas respuestas.

Re: pc local

… lo hace en la pc local no lo hace en la pc remota…

No debes ejecutar el comando del lado del “cliente”, sino del lado del “servidor”.

img

~~~

Si lo quieres ejecutar en la

Si lo quieres ejecutar en la PC remota, pues pon la instrucción en la PC remota.

Necesitas dos programas, uno cliente ( ejecutado en la máquina local ) y otro servidor ( ejecutado en la maquina remota )

Cliente:

// Código cliente ( PC local )
....
Socket client  = new Socket();
out = client.getOutputStream();
out.println("Soy yo... abreme la puerta ... abracadabra.. apagate");
out.close();
client.close();

Servidor:

// Código servidor ( PC remota )
....
Socket client  = new ServerSocket();
in = client.inputStream();
if ( "Raul eres tú?".equals(in.readAllInput()) ) {
    ProcessBuilder("shutdown").start();
}
client.close();

Supongo que es obvio, pero para poder apagar la máquina remota debes de instalar el programa servidor en esa máquina y el programa tiene que estar siendo ejecutado por un usuario con permisos de apagar la máquina. También supongo que es obvio pero vale la pena mencionarlo, si no validas los datos que recibes del cliente cualquiera podría apagar tu máquina, más aún si permites la ejecución de cualquier comando estás abriendo un hueco de seguridad ( aka Troyano) dejando tu sistema vulnerable.

Gracias

Gracias compañeros ya lo pude realizar muchisimas gracias les agradesco

@raul1990 Y cómo lo hiciste?

@raul1990 Y cómo lo hiciste? Si lo escribes aquí le podría ayudar a alguien más que necesite hacer lo mismo.