Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
desarrollo módulos locales Agente Windows
#1
Buenos días a todos,
he estado desarrollando algunos módulos propios a modo de prueba.

Un módulo para recuperar el tipo de procesador
Code:
# CPU Model using WMI 
module_begin
module_name CPU_Model
module_type generic_data_string
#module_wmiquery SELECT Name FROM Win32_Processor
#module_exec WMIC /Output:STDOUT CPU get Name
module_exec WMIC /Output:STDOUT CPU get Name | find /v "Name"
module_wmicolumn Name
module_description Cpu Model
module_group System
module_end

Funciona, pero he visto que genera unos retornos de carro en el XML que no he conseguido eliminar (en la consola se muestra correctamente):

Code:
<module>
    <name><![CDATA[CPU_Model]]></name>
    <type><![CDATA[generic_data_string]]></type>
    <description><![CDATA[Cpu Model]]></description>
    <module_interval><![CDATA[1]]></module_interval>
    <module_group>System</module_group>
    <data><![CDATA[Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz  



]]></data>


El mismo dato recuperado a través de un .vbs no genera esos retornos de carro:

Code:
Config:
# Example plugin to retrieve CPUmodel
module_plugin cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\CPUmodel.vbs"

Parte del código (sé que no está bien y falta CDATA):

Set objWMIService = GetObject( "winmgmts://" & strComputer & "/root/CIMV2" )
Set colInstances = objWMIService.ExecQuery( "SELECT Name FROM Win32_Processor", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly )

For Each objInstance In colInstances
    CPUmodel = objInstance.Name
Next

    Wscript.StdOut.WriteLine "<module>"
    Wscript.StdOut.WriteLine "    <name>CPU Model</name>"
    Wscript.StdOut.WriteLine "    <description>CPU Model</description>"
    Wscript.StdOut.WriteLine "    <type>generic_data_string</type>"
    Wscript.StdOut.WriteLine "    <data>" & CPUmodel & "</data>"
    Wscript.StdOut.WriteLine "    <module_group>System</module_group>"
    Wscript.StdOut.WriteLine "</module>"
    
WScript.Quit

Resultado:

Code:
<module>
    <name>CPU Model</name>
    <description>CPU Model</description>
    <type>generic_data_string</type>
    <data>Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz</data>
    <module_group>System</module_group>
</module>

Y luego, he creado una pequeña aplicación de consola en C# (uptimeReport) que utiliza el  uptime de Windows para recuperar, entre otros datos, el tiempo que lleva encendido el Pc. He intentado ejecutarlo tanto con module_exec como con un module_plugin:

Code:
# Example plugin to retrieve Current Uptime
#module_plugin uptimeReport.exe

# Uptime Report
module_begin
module_name Uptime Report
module_type generic_data_string
module_exec uptimeReport.exe
module_description Current System Uptime
module_group System
module_end


En consola la aplicación funciona, y está preparada para generar una salida XML cuando ejecuto el plugin, pero no llega siquiera a ejecutarla.

Cuando utilizo el módulo module_exec la salida en consola genera una línea con los datos a recuperar ("0 day(s), 1 hour(s), 0 minute(s), 9 second(s)"). He visto en el debug y logs que sí lo ejecuta, pero por algún motivo que no encuentro no termina de generar el XML:

Code:
2018-03-23 11:01:06 Run CPU_Model
2018-03-23 11:01:06 Executing: cmd.exe /c "WMIC /Output:STDOUT CPU get Name | find /v "Name""
2018-03-23 11:01:07 Run Uptime Report
2018-03-23 11:01:07 Executing: cmd.exe /c "uptimeReport"
2018-03-23 11:01:07 Run plugin
2018-03-23 11:01:07 Executing: cmd.exe /c "cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\df_percent_used.vbs""
2018-03-23 11:01:07 Run plugin
2018-03-23 11:01:07 Executing: cmd.exe /c "cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\mem_percent_used.vbs""
2018-03-23 11:01:07 Run plugin
2018-03-23 11:01:07 Executing: cmd.exe /c "cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\network.vbs""
2018-03-23 11:01:07 Run plugin
2018-03-23 11:01:07 Executing: cmd.exe /c "cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\CPUmodel.vbs""
2018-03-23 11:01:08 Error opening eHorus configuration file C:\Program Files\ehorus_agent\ehorus_agent.conf
2018-03-23 11:01:08 CPU Load getXML begin
2018-03-23 11:01:08 CPU Load getXML end
2018-03-23 11:01:08 TCP_Connections getXML begin
2018-03-23 11:01:08 TCP_Connections getXML end
2018-03-23 11:01:08 CPU_Model getXML begin
2018-03-23 11:01:08 CPU_Model getXML end
2018-03-23 11:01:08 Uptime Report getXML begin
2018-03-23 11:01:08 plugin getXML begin

Sé que son varias cosas, seguro que sencillas, pero no doy con ellas.
Por favor, me gustaría entender qué sucede en cada una y por qué no funcionan, para no caer de nuevo en los mismos errores.

Muchas gracias de antemano

Añado una cosilla que he visto en el módulo por defecto de # Basic info about TCP Connection (Total number of TCP connections active)

module_exec netstat -an | find /c /v "estab" -> cuenta todas las conexiones (abiertas, cerradas, en espera...) ya que ESTABLISHED es en mayúsculas y además la propiedad /v indica que devuelva todas menos las coincidentes con el argumento "estab".

Por lo tanto, no debería ser algo como:
module_exec netstat -an | find /c "ESTAB"
 Reply
#2
¿nada al respecto? sigo haciendo pruebas sin éxito de ninguna de las maneras.
Agradecería alguna indicación,
un saludo
 Reply
#3
(04-04-2018, 08:27 AM)CMIR Wrote: ¿nada al respecto? sigo haciendo pruebas sin éxito de ninguna de las maneras.
Agradecería alguna indicación,
un saludo

Edito.
He seguido haciendo pruebas, al final he reducido las aplicaciones a un mero Console.WriteLine() para la ejecución de tipo module_exec y sendos Console.WriteLine() que generen el XML para un module_plugin; funcionan correctamente.

El problema que persiste es cuando desde la aplicación ejecuto otra para recuperar y tratar los datos de interés que finalmente son los que quiero enviar a la consola. El modulo se ejecuta pero sigue sin terminar de generar el XML:
2018-04-05 12:05:45 Time report getXML begin
pero no hay línea de end

En modo debug devuelve:
2018-04-05 12:15:43 Pandora_Module_Exec: Time report did not executed well (retcode: -532462766)

Muchas gracias
 Reply


Users browsing this thread: 1 Guest(s)


(c) 2006-2018 Artica Soluciones Tecnológicas. Contents of this wiki are under Create Common Attribution v3 licence. | pandorafms.com | pandorafms.org

Theme © MyBB Themes