Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Apagar cualquier equipo de una red local?? (https://www.clubdelphi.com/foros/showthread.php?t=2973)

Masu 15-08-2003 11:57:35

Apagar cualquier equipo de una red local??
 
Hola a tod@s,

tengo una red local con 5 puestos, y quisiera saber como puedo hacer una aplicacion con la cual pueda apagar o reiniciar cualquiera de los equipos de la red desde mi puesto.

A ver si me podeis decir que componentes usar para la conexion, y como seria la llamada para reiniciar o apagar la maquina.

Espero vuestra ayuda.

Gracias. :D :D

Masu 15-08-2003 14:51:58

Hola de nuevo,

al parecer con la funcion api InitiateSystemShutdown, se puede apagar cualquier equipo, pero sin embargo mis equipos no lo hacen.

Mi nueva pregunta es, sabe alguien si esta puede usarse en equipos con XP??

__hector 15-08-2003 15:07:21

Si te sirve, existen herramientas en PSTools (http://www.sysinternals.com/ntw2k/fr.../pstools.shtml), mas concretamente PsShutdown, un ejecutable que desde la consola puede apagar cualquier equipo en la red, o reinciarlo (tiene diferentes switches), siempre y cuando seas admin de red o de la maquina.

Asi, solo tendrias que hacer un shellexecute utilizando el ejecutable con algunos parametros, y voilá

delphi.com.ar 15-08-2003 16:03:41

Yo crearía una aplicación pequeña que se conecte por IP con el WinSock y que al recibir X comando apague el equipo. (Si buscas en mi página, hay una app llamada peep machine que hace esto), de esta manera no tendría que liar con los privilegios de los equipos.

Saludos!

mrmanuel 04-05-2004 16:52:41

Hola a todos,

Yo tambien estoy interesado en el tema y al parecer no soy el único :D , hay varios hilos relacionados con el tema y en ninguno se termina de concretar ni se informa de si alguien lo ha conseguido hacer y menos como hacerlo jejeje :rolleyes:

Alguien puede dejar constancia de tal duda?.....

A lo que dijo HECTOR, (PSTools) no lo he podido probar aun, si lo consigo ya diré algo y si no, seguire dando el coñazo. :D :D :D


Un saludo

mrmanuel 13-05-2004 12:04:24

Hola,

he probado las PsTools y tienen buena pinta, apago perfectamente la máquina desde donde la ejecuto, pero en red no he consguido nada. creo que es por problemas con los permisos administrativos, pero no he probado a fondo.

__hector 13-05-2004 20:02:42

Si, debe ser por permisos, y es que no puedes ir apagando las maquinas de la red medalaganariamente, sino que el usuario que utilizes para ejecutar la utilidad tiene que pertenecer a los grupos de administradores de la red (administrators, domain admins, enterprise admins, depende de tu configuracion), o tener los permisos en la maquina especifica en cuestion.

DarkByte 14-05-2004 07:54:12

Yo, como delphi.com.ar, me inclino más hacia poner un server en las computadoras y que estén intentando conectaste al servidor, así el servidor tendría una lista completa y podría apagar el que quisiese enviando un comando.

¿Qué tienen que ver los permisos con esto?, no me aclaro, ¿Acaso se debería de evitar que se apagase el pc si el usuario es el Administrador?¿No se podría conseguir eso poniendo en CURRENT_USER en el registro en vez de LOCAL_MACHINE?

__hector 14-05-2004 20:10:00

Tiene mucho que ver, y es que parece que has liado los hilos del tema. Yo igual no entiendo cuando mencionas lo de "poner en el registro CURRENT_USER en vez de LOCAL_MACHINE", pero en cuanto a los pstools, utilizan servicios de WINNT para ejecutar acciones en maquinas de la red, tareas de administracion en este caso, y para acceder a las mismas requieres niveles de permisos en el dominio/maquina.

DarkByte 14-05-2004 21:24:03

y para qué hacen falta las pstools? esq estoy poco puesto en el tema, pero me parece que poniendo en CURRENT_USER (para evitar cerrar a un administrador, se pondría en todos los usuarios a cerrar)-> Software -> Microsoft -> Windows -> Current Version -> Run la aplicación.

Después, el diseño de la aplicación sería:
Cliente:
-Autoconectar a la ip del servidor
-Esperar respuesta
-Si el comando es APAGA entonces notifico de la recepción y me apago
-Si el comando es REINICIA entonces notifico y a reiniciar se ha dicho.
Servidor:
-Tengo un lista con los clientes conectados
-Cuando se conecta un cliente, refresco
-Cuando el "jefe" escriba en el edit una ip y pulse apagar intento enviar el comando APAGA a esa computadora.
-Si el "jefe" escribe la ip y pulsa REINICIA... manda el comando reiniciar
-Intento capturar la respuesta de recepcion del comando
-Si me responde... aviso, si ha pasado 6 segundos y no hay respuesta, aviso al "jefe" de lo que ha pasado y le pregunto si ha escrito la ip correcta.

Más o menos..., esta podría ser el planteamiento.

mrmanuel 27-05-2004 02:30:46

Jolines como se complica la cosa.

Pensaba que esto sería más facil., de momento a probar la ide de los WinSock, me pelearé e investigaré como se hace.

grcias

Amilius 27-05-2004 05:17:58

Cita:

Empezado por mrmanuel
Jolines como se complica la cosa.

Pensaba que esto sería más facil., de momento a probar la ide de los WinSock, me pelearé e investigaré como se hace.

grcias

Imagínate si fuera fácil:

"Nuevo virus se extiende por internet apagando máquinas a diestra y siniestra, basta conectarse a internet para correr el riesgo de que su compu se apaque."

Es por eso que hay que tener en cuenta permisos y privilegios que se suponen que deben ser necesarios para apagar una máquina.

DarkByte 28-05-2004 19:35:25

Cita:

Empezado por mrmanuel
Jolines como se complica la cosa.

Te prometo que preferiría tener que hacer un programa como ese a volver a pasar por los trimestrales de la escuela ;) , de lejos todo parece difícil, pero recuerda que sólo el conocimiento te hace libre.
Cita:

Empezado por Amilius
Imagínate si fuera fácil:

"Nuevo virus se extiende por internet apagando máquinas a diestra y siniestra, basta conectarse a internet para correr el riesgo de que su compu se apaque."

No es fácil... pero tampoco tan difícil.
Cita:

Empezado por Amilius
Es por eso que hay que tener en cuenta permisos y privilegios que se suponen que deben ser necesarios para apagar una máquina

Sigo pensando que nó, que teniendo un servidor corriendo en la máquina remota y estando ese bien programado, no hay que tener en cuenta los permisos, pensando claro que tengas acceso manual a la máquina para instalar el servidor claro.

__hector 28-05-2004 21:38:14

DarkByte, no se cual sea el caso particular del que inicio el hilo, pero suponiendo que se cuenta con muchas computadoras, varias decenas por ejemplo, el tiempo de deployment para instalar la aplicacion receptora, dar mantenimiento a los equipos y la aplicacion, y todas las demas tareas administrativas, asi como la codificacion, se simplifican de una manera soberbiamente grande con el simple hecho de bajar un pequeño ejecutable, y correrlo en el command prompt.

Ahora, si se quiere diseñar una aplicacion, se puede hacer sin ningun problema. Es simple tambien, pero vuelvo y repito que el tiempo de deployment no es igual. Y eso, en algunas empresas, cuenta ($)

miguel_fr 30-08-2004 16:38:45

aver si aporto algo. Yo tambien quiero hacer una aplicacion de este tipo, tengo instalado Windows Xp en todas mis pc, no tienen ninguna cuenta ya que si lo hago algunos juegos no me lo funcionan, es por esto que algunas aplicaciones que estan para descargar no me lo funcionan correctamente debido al permiso que necesito. Yo me hice una aplicacion cliente/servidor usando socket, cambie algunas cosas pero almenos me lo funciona de este modo, les explico:
Pc´s Cliente ----------------- Pc Servidora
(Uso ServerSocket) (Uso ClientSocket)
Ya que mi servidor no esta ejecutandoce siempre, no podia lograr que se logre la conexion correctamente una ves que el servidor se iniciaba despues que los clientes.
Yo ahora pongo a los Pc´s clientes en estado de espera y cuando reciben la señal de conexion por parte del Pc server ejecuto la siguiente linea que me reinicia la pc
Código Delphi [-]
WinExec(PChar('C:\WINDOWS\system32\shutdown.exe -r -t 01'),SW_SHOWNORMAL);
El tema esta en que tengo un juego (RoadRash) que toma todo los recursos y demora mucho tiempo en salirse, es casi imposible salirse al Win, no responde a la tecla de Win y tampoco a Ctrl+Esc, y la famosa Ctrl+Alt+Supr tambien demora su buen rato, Mi pregunta es si alguno de ustedes sabe algun modo de cerrar rapidamente aplicaciones, yo utilice
Código Delphi [-]
Mango:=FindWindow(nil,'ROADRASH');
 if mango<>0 then
  SendMessage(Mango,WM_CLOSE,0,0);
pero se sigue demorando y ademas el win queda clavado a la hora de reiniciarse


La franja horaria es GMT +2. Ahora son las 08:04:58.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi