• Martes 12 de Noviembre de 2024, 20:55

Autor Tema:  Instalando Un Servicio En Un Pc Remoto  (Leído 1574 veces)

orosello

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Instalando Un Servicio En Un Pc Remoto
« en: Viernes 4 de Mayo de 2007, 17:47 »
0
Hola:
     Estoy tratando de instalar un servicio en Vs C++. En la maquina local lo instala perfectamente,  pero cundo trato de acceder a una maquina remota mediante la funcion

SC_HANDLE schSCManager = OpenSCManager( ipaddres, NULL,
                                                                SC_MANAGER_CREATE_SERVICE);

para luego instalar o crear el servico mediante

SC_HANDLE schService = CreateService(..........)

el schSCManager siempre toma valor cero es  decir que no se puede conectar, si alguien a desarrollado algo sobre esto le agredeceria que me diera una ayuda.

Saludos Orosello

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Instalando Un Servicio En Un Pc Remoto
« Respuesta #1 en: Viernes 4 de Mayo de 2007, 18:01 »
0
Primero comproba que el primer parametro segun la MSDN debe ser:
Pointer to a null-terminated string that specifies the name of the target computer. If the pointer is NULL or points to an empty string, the function connects to the service control manager on the local computer.

Si acepta IPs entonces comproba esto:
¿GetLastError es ERROR_ACCESS_DENIED? ¿Tenes permisos para hacer esto en esa
maquina?

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

orosello

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Instalando Un Servicio En Un Pc Remoto
« Respuesta #2 en: Viernes 4 de Mayo de 2007, 18:10 »
0
Ya me docunte un poquito, y el problema es a la hora de OpenSCManager(...). Yo tengo un user y pass de la PC a la que se lo quiero instalar, pero la esta primera funcion no se le pasan estos valores  (se le pasan a la CreateServices(...)) pero cundo compruebo si esta esatblecida la cene.. con el service control manager simpre me da cero este valor.

No se si me he explicado correctamete

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Instalando Un Servicio En Un Pc Remoto
« Respuesta #3 en: Viernes 4 de Mayo de 2007, 18:21 »
0
Cita de: "orosello"
Ya me docunte un poquito, y el problema es a la hora de OpenSCManager(...). Yo tengo un user y pass de la PC a la que se lo quiero instalar, pero la esta primera funcion no se le pasan estos valores  (se le pasan a la CreateServices(...)) pero cundo compruebo si esta esatblecida la cene.. con el service control manager simpre me da cero este valor.

No se si me he explicado correctamete
Te estaba hablando de esa funcion.

Primero comproba que el primer parametro segun la MSDN debe ser:
Pointer to a null-terminated string that specifies the name of the target computer. If the pointer is NULL or points to an empty string, the function connects to the service control manager on the local computer.

Si acepta IPs entonces comproba esto:
¿GetLastError es ERROR_ACCESS_DENIED? ¿Tenes permisos para hacer esto en esa
maquina?


En cuanto al nombre de usuario y clave que comentas son para especificar la cuenta bajo la cual sera ejecutado el servicio.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

orosello

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Instalando Un Servicio En Un Pc Remoto
« Respuesta #4 en: Viernes 4 de Mayo de 2007, 18:51 »
0
Mira no entiendo bien el mensaje que me quieres hacer llegar pero lo que hago es lo siguiente.
void InstallService(char* servicename)
{  
  SC_HANDLE schSCManager = OpenSCManager( ipaddres, NULL,
                                               SC_MANAGER_CREATE_SERVICE);
   if (schSCManager == 0)
   {
                   long nError = GetLastError();
                   char pTemp[121];
                   sprintf(pTemp, "OpenSCManager failed, error code = %\n", nError);
                 }
   else
   {
                    SC_HANDLE schService = CreateService(....)
                 }
}

a create services le paso los parametros  que este lleva (ya lo he probado local y lo instala a la perfeccion)  y no trabaja como deberia.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Instalando Un Servicio En Un Pc Remoto
« Respuesta #5 en: Viernes 4 de Mayo de 2007, 19:07 »
0
Cita de: "orosello"
a create services le paso los parametros  que este lleva (ya lo he probado local y lo instala a la perfeccion)  y no trabaja como deberia.
Olvidate de CreateService por ahora, sin el HANDLE al SCManager no la podes llamar.

El codigo, asi tal cual lo pegaste, esta mal ya que te falta un tipo despues del % (por ejemplo d) pero ya mismo podrias comprobar si nError es 5 (ERROR_ACCESS_DENIED).

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

orosello

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Instalando Un Servicio En Un Pc Remoto
« Respuesta #6 en: Viernes 4 de Mayo de 2007, 19:20 »
0
Muchas gracias por su ayuda y el tiempo que me dedico,me sirvio mucho sus consejos para darme de cuenta de lo que me faltaba. Ya puede instalarlo en el PC remoto. todo parece indicar que hay que establecer una  preconexion con la maquina antes de llamar a la funcion OpenSCManager().

Una vez mas Gracias

Saludos.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Instalando Un Servicio En Un Pc Remoto
« Respuesta #7 en: Viernes 4 de Mayo de 2007, 20:08 »
0
Cita de: "orosello"
Muchas gracias por su ayuda y el tiempo que me dedico,me sirvio mucho sus consejos para darme de cuenta de lo que me faltaba. Ya puede instalarlo en el PC remoto. todo parece indicar que hay que establecer una  preconexion con la maquina antes de llamar a la funcion OpenSCManager().

De nada B)

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.