Hacer correr tarea programada ya establecida

Iniciado por nhaalclkiemr, 2 Enero 2008, 03:58 AM

0 Miembros y 1 Visitante están viendo este tema.

Ferсhu

#10
Si me di cuenta dsp de q lo dijiste q eso era el medio para el fin jaja, pero buen keria ayudarte con esa parte.

Ahora aver, si keres q corra como system, o lo metes x el registro en alguna parte donde cargue procesos, cosa q debe ser dificil encontrar.

o te creas/conseguis, un codigo de algun servicio q te lanze tu archivo asi hereda el privilegio system.

Ojo, no digo q crees tu programa como servicio, sino solo conseguir algun codigo de un servicio q ejecute aplicaciones y solo le cambias la ruta hacia tu programa y listo.

Sigo pensando q lo mejor es injectar o crear proceso remoto, si bien recuerdo si lo haces "bien" no crashea.

Ahora, todas las posibilidades q se me ocurren, estan mui lejos de Vb, si bien tu prog seguro q esta en vb, el medio para ponerlo como system seguro q no tiene nada q ver con vb.

En el foro de c/c++ hay un codigo mio donde muestra como hacer q otro proceso lanze el programa q se le pase como parametro, asi heradando sus privilegios.

No sirve para procesos de privilegios mas altos, ya q no puede abrir el proceso para crear el trhead.

Saludos!!

Ferсhu

a esto me referia con conseguir algo para crear el servicio jeje.

http://freyes.svetlian.com/tips/ejecutable-a-servicio.htm
CitarPara crear un servicio con un ejecutable lo puedes hacer con herramientas de Microsoft o con herramientas de terceros.
Con herramientas de Microsoft

Se necesitan dos programas del Kit de recursos, instsrv.exe y srvany.exe; se lanza desde un cmd la línea:

<path>instsrv.exe "Nombre del Servicio" <path>srvany.exe

Es imprescindible pasar el path donde esten ambos ejecutables.

Una vez hecho esto, se abre regedit y en HKLM\system\CurrentControlSet\Services verás que se ha creado una clave(useasé carpeta) "Nombre del Servicio"(si abres la consola de servicios verás que ya se ve en la lista); pinchas en el árbol en ella y creas una subclave(useasé carpeta) llamada "Parameters", dentro de ella un valor de cadena llamado "Application" al que de contenido le pones Ruta\Nombre.exe. Ya tienes creado el servicio. De esta manera se crea con arranque automático y lanzado por cuenta del sistema; te metes en servicios y cambias lo que haga falta(se puede hacer desde línea de comandos con "sc.exe").

Ten en cuenta que el programa debe recibir las rutas absolutas de donde deba acceder, ya que al arrancarse como servicio digamos que "desconoce" en qué ruta se encuentra su propio ejecutable, con lo que no sabe manejar rutas relativas. Esto es así porque no se crea un servicio con el ejecutable en realidad, si no que se crea con srvany como el ejecutable del servicio y el ejecutable que queremos lanzar como parámetro (quizás si ubicamos una copia de srvany en la misma carpeta en la que está el ejecutable funciona, pero dependerá del ejecutable en sí)

Otra posibilidad, que a lo mejor te puede valer y es más simple, es lanzar la aplicación en un script de inicio del equipo; se abre el editor de políticas del sistema (gpedit.msc) y se especifica en "Configuración de equipo\Configuración de Windows\Archivos de comandos (inicio/apagado)". De esta forma se ejecutará, si bien no será un servicio.

Por último, puedes editar el registro para que se lance desde la clave "HKLM\Software\Microsoft\Windows\CurrentVersion\Run", creando un valor de tipo string (REG_SZ) al que llames como te parezca y que contenga la llamada al ejecutable. De esta forma se ejecutará, si bien no será un servicio.
Con herramientas de terceros

Existen herramientas de terceros que te permiten lanzar aplicaciones como servicios. Aquí pongo enlaces a cuatro de ellas:

Firedaemon
http://www.firedaemon.com/

Application as service 1.0
http://www.eltima.com/products/application-as-service/

Service Mill
http://www.activeplus.com/us/products/smill/

Serve All
http://www.transsoft.com/view_content.asp?ID=25

Lo de moficar a mano el regedit, lo podes cambiar facilmente con las apis de forma automatica.

Saludos!!

nhaalclkiemr

CitarEn el foro de c/c++ hay un codigo mio donde muestra como hacer q otro proceso lanze el programa q se le pase como parametro, asi heradando sus privilegios.

No sirve para procesos de privilegios mas altos, ya q no puede abrir el proceso para crear el trhead.

Si yo tengo un programa ejecutandose como "usuario" por defecto cualquiera programa que cargue el primer programa también lo hará como "usuario"...en "unsuario" incluyo a SYSTEM...y yo puedo hacer un programa sencillo en VB que haga lo mismo que tu en C...con cojer los parametros y ejecutarlos llega :xD

CitarOtra posibilidad, que a lo mejor te puede valer y es más simple, es lanzar la aplicación en un script de inicio del equipo; se abre el editor de políticas del sistema (gpedit.msc) y se especifica en "Configuración de equipo\Configuración de Windows\Archivos de comandos (inicio/apagado)". De esta forma se ejecutará, si bien no será un servicio.

Esto es a lo que me refería yo con el método Scripting...se como hacerlo directamente desde el registro...el método lo tengo puesto en el manual que tengo en Tutoriales y Documentacion si a alguien le interesa...

Sobre lo de los servicios eso todo que me pusiste sabía la mayoría, yo a ver yo se crear, modificar, intervenir y eliminar servicios (tanto en el registro como de otras maneras con APIs y asi) e incluso ejecutar el mio propio...lo malo es que para que una aplicación corra como un servicio tiene que dar algun tipo de respuesta en un tiempo determinado...si no lo hace al poco se cierra...sino prueva a crear un servicio por ejemplo poniendo el notepad.exe o asi...ya verás lo que pasa...

Lo malo es que yo no sé dar esa "respuesta" para que el servicio se mantenga...aún asi durante esos segundos puedo cojer y ejecutarme otra vez a mi mismo...pero la verdad prefiero el metodo facil de las tareas programadas....pero si sabeis como dar esa "respuesta" desde VB os lo agradecería mucho...

Weno gracias y saludos ;)
StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%

oscar_df

hola que tal, espero me puedan ayudar, y espero mi pregunta este en el tema correcto.

tengo una tarea programa en cada servidor con windows 2003 tengo que correrla en ocasiones manualmente, aqui es donde me gustaria saber si se puede generar una batch en el que pueda hacerlo de forma mas facil ya que son 52 servidores y me tardo mucho en hacerlo manualmente, se podra hacer un batch que me permita ingresas las 52 tareas programadas y que con un doble click esta proceso haga correr las tareas en sus respectivos servidores? de antemano les agreadezco la atencion.

saludos. mexico city

seba123neo

Cita de: oscar_df en 24 Septiembre 2010, 06:49 AM
hola que tal, espero me puedan ayudar, y espero mi pregunta este en el tema correcto.

tengo una tarea programa en cada servidor con windows 2003 tengo que correrla en ocasiones manualmente, aqui es donde me gustaria saber si se puede generar una batch en el que pueda hacerlo de forma mas facil ya que son 52 servidores y me tardo mucho en hacerlo manualmente, se podra hacer un batch que me permita ingresas las 52 tareas programadas y que con un doble click esta proceso haga correr las tareas en sus respectivos servidores? de antemano les agreadezco la atencion.

saludos. mexico city

hombre reviviste un post de años, crea uno nuevo.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson