PDA

Ver la Versión Completa : ¿Como se puede iniciar un servicio en un equipo remoto?


JoAnCa
14-07-2011, 15:42:31
Hola a todos
Hola a todos
Sucede que necesito acceder a otros equipos en mi red para instalarle unas herramientas de seguridad (GFI Endpointsecurity) pero en algunos me deniega el acceso porque el servicio Registro Remoto está deshabilitado
La solución es activarlo y ponerlo en modo de inicio automatico

Existe alguna forma de hacerlo desde mi PC sin tener que ir a cada PC individualmente a activarlo?

Neftali [Germán.Estévez]
14-07-2011, 17:10:11
Puedes iniciar y parar un servicio en otro equipo utiliando WMI. Para ello necesitas credenciales válidas de acceso.
Revisa ayuda sobre la clase Win32_Service

JoAnCa
14-07-2011, 18:13:24
Puedes iniciar y parar un servicio en otro equipo utiliando WMI. Para ello necesitas credenciales válidas de acceso.
Revisa ayuda sobre la clase Win32_Service

Gracias Neftali
Cierto, ya yo habia trabajado antes con las WMI pero para obtener datos del hardware, así que no debo tener problemas para implementar la clase Win32_Service

Una duda, yo lo use para leer datos, tambien se pueden modificar?

Veré si me sale bien :rolleyes:

JoAnCa
14-07-2011, 19:31:40
Neftali Probe con las WMI, le asigno los valores para activar el servicio y no me da error, pero cuando reviso en la PC remota el servicio no esta activo

Parece que lo estoy haciendo mal, o me falta algo :confused:

try
rows:=MagWmiGetInfo(edtNombrePC.Text, 'root\CIMV2', 'Administ', '*****', 'Win32_Service', WmiResults, instances);
if rows > 0 then
begin
for i:=1 to instances do
begin
for j:=1 to rows do
begin
if Pos('RemoteRegistry', WmiResults[i, j]) > 0 then
begin
WmiResults[i, 17]:='True';
WmiResults[i, 18]:='Auto';
end;
end;
end;
// ShowMessage('Terminado Ok');
end
else
finally
WmiResults:=Nil;
end;

Neftali [Germán.Estévez]
15-07-2011, 10:54:57
Si descargas el paquete GLibWMI, entre las demos hay un ejemplo de utilización de servicios.
En este caso es sobre la máquina local, pero si cambias credenciales debe funcionar sobre otras máquinas.

En concreto el componente para la clase Win32_Service ya tiene implementados los métodos para Iniciar, parar, reanudar,... servicios.
Échale un vistazo a la demo y verás como ya está hecho.

NOTA: Si la demo de sercicios no está incluída en el paquete (creo recordar que sí) dímelo y te la envío.

JoAnCa
15-07-2011, 18:51:20
Muchas gracias Neftali, ya tengo el ejemplo de los Servicios de las GLibWMI

Probaré como hacer para que funcione en una pc remota

JoAnCa
15-07-2011, 20:51:36
Neftali
Disculpa tanta molestia, pero no encuentro donde poner las credenciales para acceder a otra PC en la red

Estuve revisando el ejemplo y el codigo fuente del componente pero no veo donde es que se pueden poner esos datos :confused:

Podrias ayudarme con eso? :rolleyes:

Neftali [Germán.Estévez]
18-07-2011, 10:21:13
Mira el método de la unit Base:


procedure TWMIBase.ConnectWMI();


Por ahora GLibWMI (http://sourceforge.net/projects/glibwmi/) sólo funciona con el ordenador local, pero símplemente porque no he publicado las propiedades de acceso para modificar User y contraseña. Si miras ese método verás que están comentadas, basta con que hayas llegar a esas propiedades las credenciales que necesitas y listo.