Welcome to Pandora FMS Community!

Find answers, ask questions, and connect with our community around the world.

Welcome to Pandora FMS Community Forums Soporte de la comunidad monitorizar estado tarea programada

  • monitorizar estado tarea programada

    Posted by Alki on March 30, 2010 at 12:52

    Hola, llevo muy poquito con pandora,

    estoy tratando de monitorizar el estado de una tarea programada de windows, por ejemplo un backup,

    he estado intentandolo hacer por wmi, pero con wmiexplorer no encuentro ninguna referencia al estado de las tareas programadas, he visto win32jobobjetstatus, pero no aparece nada dentro.

    saludos y gracias…

    Chema replied 4 years ago 3 Members · 7 Replies
  • 7 Replies
  • suzdal

    Member
    March 30, 2010 at 13:18
    1 Karma
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    prueba esto:

    Set objService = GetObject(“winmgmts:\” & strComputer)
    Set objNewJob = objService.Get(“Win32_ScheduledJob”)

    Set colScheduledJobs = objService.ExecQuery(“SELECT * FROM Win32_ScheduledJob”)
    For Each objJob in colScheduledJobs
    Wscript.Echo ( “Command: ” & objJob.Command & vbCRLF _
    & “Days Of Week: ” & objJob.DaysOfWeek & vbCRLF _
    & “Interact with Desktop: ” & objJob.InteractWithDesktop & vbCRLF _
    & “Job ID: ” & objJob.JobID & vbCRLF _
    & “Job Status: ” & objJob.JobStatus & vbCRLF _
    & “Run Repeatedly: ” & objJob.RunRepeatedly & vbCRLF _
    & “Start Time: ” & objJob.StartTime )
    Next

  • Alki

    Member
    March 30, 2010 at 14:41
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    hola muchas gracias por tu rapida respuesta,

    aunque aun no la entiendo muy bien, por ejemplo, parto de este modulo (controla el stado de la base de datos)

    module_begin
    module_name mysql_Status
    module_type generic_data_string
    module_wmiquery select State from Win32_Service where Name = “mysql”
    module_wmicolumn State
    module_end

    El codigo que incluyes parece visual basic, por lo cual imagino que no se podra poner directamente sobre la definicion del modulo (escrito en el ejemplo). Tengo que releerme los manuales 🙂

    Por otro lado, en el codigo que pones ¿donde haces referencia a la tarea en concreto que queremos monitorizar?

    Un saludo, y mil gracias de nuevo..

  • suzdal

    Member
    March 30, 2010 at 14:58
    1 Karma
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    vale, pregunta:

    cuando te refieres a “tarea”, es una tarea programada “AT” (panel de controltareas programadas) o es un servicio de windows (panel de controlherramientas administrativasservicios)

    me explico, eso que has puesto tu: Win32_Service …. hace referencia a los servicios de windows, digase mysql, pandora FMS agent, wuauserv (Actualizaciones automáticas)

    y lo que yo me refería era a lo otro, las tareas programadas, ejecutar una acción o programa a determinada hora y fecha.

    son cosas diferentes.

    dime exactamente lo que quieres y te podré ayudar mejor.

  • Alki

    Member
    March 30, 2010 at 20:40
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    sisi tienes razon, tareas programadas del programador de tareas..

    yo puse el ejemplo de un modulo que monitorizaba un servicio que no tiene nada que ver, pero solo era un ejemplo de un modulo cualquiera.

    He estado investigando un poco mas y creo que ya lo tengo mas claro, el modulo que yo puse de ejemplo son para consultas wmi, hay que hacer un modulo para ejecutar vbs.

    Por cierto he estado inspeccionado w32_schedulejobs con wmi explorer, y solo me aparececen las tareas que se han creado con AT (como por ejemplo la que crea el agente de pandora), pero las tareas que se crean con el asistente no me aparecen, en particular a mi lo que me interesa es monitorizar que las copias de seguridad se estan haciendo bien.

    Un saludo y gracias..

    PD: El foro me va fatal, en toda la mañana apenas he conseguido que me salga la pagina un par de veces, ahora parece que va algo mejor.

  • Alki

    Member
    March 31, 2010 at 02:48
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    bueno, te cuento lo que he hecho:

    en pandora_agent.conf añadi lo siguiente:

    module_begin
    module_name tareas
    module_type generic_data_string
    module_exec cscript “%ProgramFiles%pandora_agentutiltareas.vbs”
    module_description Estado de las tareas
    module_end

    en tareas.vbs puse: (y este fichero lo puse en el directorio util)

    Set objService = GetObject(“winmgmts:\” & strComputer)
    Set objNewJob = objService.Get(“Win32_ScheduledJob”)

    Set colScheduledJobs = objService.ExecQuery(“SELECT * FROM Win32_ScheduledJob”)
    For Each objJob in colScheduledJobs
    Wscript.Echo ( “Command: ” & objJob.Command & vbCRLF _
      & “Days Of Week: ” & objJob.DaysOfWeek & vbCRLF _
      & “Interact with Desktop: ” & objJob.InteractWithDesktop & vbCRLF _
      & “Job ID: ” & objJob.JobID & vbCRLF _
      & “Job Status: ” & objJob.JobStatus & vbCRLF _
      & “Run Repeatedly: ” & objJob.RunRepeatedly & vbCRLF _
      & “Start Time: ” & objJob.StartTime )
    Next

    y este es el resultado que obtengo:

    aki hay algo raro 😉

  • Alki

    Member
    March 31, 2010 at 12:06
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    Bueno, al final lo he hecho de otra forma, ya que el vbs que me pusiste al ejecutarlo con cscript no me mostraba las tareas creadas con el asistente.

    Seguramente se pueda mejorar bastante, pero al menos me funciona. Seria algo asi:

    module_begin
    module_name Backup_Status
    module_type generic_data_string
    module_exec dir “e: /tw” | grep “backup”
    module_description Estado de la copia de seguridad
    module_end

    Me mostraria la fecha del ultimo backup, ya que el destino es el fichero backup. Lo que no se como hacer es para que se ponga en rojo si han pasado varios dias sin que la copia se actualize.

  • Chema

    Member
    December 30, 2020 at 16:16
    2 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    Bueno, al final lo he hecho de otra forma, ya que el vbs que me pusiste al ejecutarlo con cscript no me mostraba las tareas creadas con el asistente.

    Seguramente se pueda mejorar bastante, pero al menos me funciona. Seria algo asi:

    module_begin
    module_name Backup_Status
    module_type generic_data_string
    module_exec dir “e: /tw” | grep “backup”
    module_description Estado de la copia de seguridad
    module_end

    Me mostraria la fecha del ultimo backup, ya que el destino es el fichero backup. Lo que no se como hacer es para que se ponga en rojo si han pasado varios dias sin que la copia se actualize.

     Buenas Alki, teniendo la misma necesidad que vosotros al monitorizar una tarea del programador de tareas de microsoft, he visto vuestros comentarios.

    Os comento como he podido resolver, para mi necesidad, este problema.

    Lo primero que he realizado es un script .bat donde consulto una tarea especifica.
    Después, he creado un módulo donde ejecuto dicho script que me devuelve los valores que necesito.

    Espero que aun os pueda servir de utilidad, aunque haya llegado tarde a este hilo.

    Un saludo.

    ############################

    @echo off

    schtasks /v |grep “copias”|gawk “{print($10)}” > c:resultado_copia.txt
    rem $10 — PUEDE SER VARIABLE, DEPENDIENDO DEL SISTEMA
    rem copias — ES EL NOMBRE DE LA TAREA
    rem resultado_copia.txt — USO EL FICHERO PARA REALIZARLE UN POST TRATAMIENTO A LOS RESULTADOS DEVUELTOS.

    FOR /F “delims=·” %%A IN (c:resultado_copia.txt) DO CALL:Tratar “%%A”

    rem SI DEVUELVE 267009 ES QUE LA TAREA SE ENCUENTRA EN EJECUCION
    IF %Reg%==267009 (
    goto :EnProceso

    )
    rem SI DEVUELVE 0 ES QUE LA TAREA SE REALIZO CORRECTAMENTE
    IF %Reg%==0 (
    goto Correcto
    )

    rem SI DEVUELVE UN VALOS MAYOR QUE 0 ES QUE HA HABIDO ALGUN PROBLEMA.
    IF %Reg% GTR 0 (
    goto :Fallo
    )

    goto :exit

    :EnProceso
    echo En Proceso …
    del c:resultado_copia.txt
    goto :exit

    :Fallo
    echo Fallo… Revisar copia!
    del c:resultado_copia.txt
    goto :exit

    :Correcto
    echo Correcto.
    del c:resultado_copia.txt
    goto :exit

    :Tratar
    rem aquí se procesa cada línea del archivo
      SET Reg=%~1
     
    :exit