Pandora FMS Agent Windows inventory fixes

This commit is contained in:
fbsanchez 2016-02-17 14:16:28 +01:00
parent 0c6e7164b8
commit e8281ea658
14 changed files with 376 additions and 232 deletions

View File

@ -2,24 +2,34 @@
' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es> ' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es>
' This plugin extends agent inventory feature. Only enterprise version ' This plugin extends agent inventory feature. Only enterprise version
' -------------------------------------------------------------------------- ' --------------------------------------------------------------------------
on error resume next
'WMI architecture 'WMI architecture
Wscript.StdOut.WriteLine "<inventory>"
Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>Architecture</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>"
strComputer = "." strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set cols = objWMIService.ExecQuery("Select osarchitecture from Win32_OperatingSystem") Set cols = objWMIService.ExecQuery("Select osarchitecture from Win32_OperatingSystem")
For Each data In cols on error resume next
Wscript.StdOut.WriteLine "<data><![CDATA[" & data.osarchitecture & "]]></data>" flag = cols.Count
Next If (err.number <> 0) Then
flag = true
Else
flag = false
End If
on error goto 0
Wscript.StdOut.WriteLine "</datalist>" 'Print only when there's results
Wscript.StdOut.WriteLine "</inventory_module>" If (NOT flag) Then
Wscript.StdOut.WriteLine "</inventory>" Wscript.StdOut.WriteLine "<inventory>"
Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>Architecture</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>"
For Each data In cols
Wscript.StdOut.WriteLine "<data><![CDATA[" & data.osarchitecture & "]]></data>"
Next
Wscript.StdOut.WriteLine "</datalist>"
Wscript.StdOut.WriteLine "</inventory_module>"
Wscript.StdOut.WriteLine "</inventory>"
End If

View File

@ -2,28 +2,39 @@
' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es> ' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es>
' This plugin extends agent inventory feature. Only enterprise version ' This plugin extends agent inventory feature. Only enterprise version
' -------------------------------------------------------------------------- ' --------------------------------------------------------------------------
on error resume next
'WMI CD_ROM_drives_info 'WMI CD_ROM_drives_info
Wscript.StdOut.WriteLine "<inventory>"
Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>CDROM</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>"
strComputer = "." strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colCDROMDrives = objWMIService.ExecQuery("Select caption,description,drive,deviceid from win32_CDROMDrive") Set colCDROMDrives = objWMIService.ExecQuery("Select caption,description,drive,deviceid from win32_CDROMDrive")
For Each cdromd In colCDROMDrives on error resume next
flag = colCDROMDrives.Count
If (err.number <> 0) Then
flag = true
Else
flag = false
End If
on error goto 0
'Print only when there's results
If (NOT flag) Then
Wscript.StdOut.WriteLine "<inventory>"
Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>CDROM</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>"
For Each cdromd In colCDROMDrives
Wscript.StdOut.WriteLine "<data><![CDATA[" & cdromd.caption _ Wscript.StdOut.WriteLine "<data><![CDATA[" & cdromd.caption _
& ";" & cdromd.description _ & ";" & cdromd.description _
& ";" & cdromd.drive _ & ";" & cdromd.drive _
& ";" & cdromd.deviceid _ & ";" & cdromd.deviceid _
& "]]></data>" & "]]></data>"
Next Next
Wscript.StdOut.WriteLine "</datalist>" Wscript.StdOut.WriteLine "</datalist>"
Wscript.StdOut.WriteLine "</inventory_module>" Wscript.StdOut.WriteLine "</inventory_module>"
Wscript.StdOut.WriteLine "</inventory>" Wscript.StdOut.WriteLine "</inventory>"
End If

View File

@ -2,24 +2,34 @@
' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es> ' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es>
' This plugin extends agent inventory feature. Only enterprise version ' This plugin extends agent inventory feature. Only enterprise version
' -------------------------------------------------------------------------- ' --------------------------------------------------------------------------
on error resume next
'WMI cpuinfo 'WMI cpuinfo
Wscript.StdOut.WriteLine "<inventory>"
Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>CPU</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>"
strComputer = "." strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colCPUs = objWMIService.ExecQuery("Select name,maxclockspeed,caption from Win32_Processor") Set colCPUs = objWMIService.ExecQuery("Select name,maxclockspeed,caption from Win32_Processor")
For Each cpu In colCPUs on error resume next
flag = colCPUs.Count
If (err.number <> 0) Then
flag = true
Else
flag = false
End If
on error goto 0
'Print only when there's results
If (NOT flag) Then
Wscript.StdOut.WriteLine "<inventory>"
Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>CPU</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>"
For Each cpu In colCPUs
Wscript.StdOut.WriteLine "<data><![CDATA[" & cpu.name & ";" & cpu.maxclockspeed & " MHz;" & cpu.caption & "]]></data>" Wscript.StdOut.WriteLine "<data><![CDATA[" & cpu.name & ";" & cpu.maxclockspeed & " MHz;" & cpu.caption & "]]></data>"
Next Next
Wscript.StdOut.WriteLine "</datalist>"
Wscript.StdOut.WriteLine "</inventory_module>"
Wscript.StdOut.WriteLine "</inventory>"
Wscript.StdOut.WriteLine "</datalist>"
Wscript.StdOut.WriteLine "</inventory_module>"
Wscript.StdOut.WriteLine "</inventory>"
End If

View File

@ -2,20 +2,30 @@
' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es> ' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es>
' This plugin extends agent inventory feature. Only enterprise version ' This plugin extends agent inventory feature. Only enterprise version
' -------------------------------------------------------------------------- ' --------------------------------------------------------------------------
on error resume next
'WMI disksinfo 'WMI disksinfo
Wscript.StdOut.WriteLine "<inventory>"
Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>HD</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>"
strComputer = "." strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colHDDs = objWMIService.ExecQuery("Select * from win32_diskdrive") Set colHDDs = objWMIService.ExecQuery("Select * from win32_diskdrive")
For Each disco In colHDDs on error resume next
flag = colHDDs.Count
If (err.number <> 0) Then
flag = true
Else
flag = false
End If
on error goto 0
'Print only when there's results
If (NOT flag) Then
Wscript.StdOut.WriteLine "<inventory>"
Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>HD</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>"
For Each disco In colHDDs
If ((not IsNull(disco.size)) AND (disco.size > 0)) then If ((not IsNull(disco.size)) AND (disco.size > 0)) then
Wscript.StdOut.Write "<data><![CDATA[" & disco.caption _ Wscript.StdOut.Write "<data><![CDATA[" & disco.caption _
& ";" & Abs(Round((disco.size/(1024*1024*1024)),2)) & " GB" & ";" & Abs(Round((disco.size/(1024*1024*1024)),2)) & " GB"
@ -26,9 +36,9 @@ For Each disco In colHDDs
End If End If
Wscript.StdOut.WriteLine "]]></data>" Wscript.StdOut.WriteLine "]]></data>"
End If End If
Next Next
Wscript.StdOut.WriteLine "</datalist>"
Wscript.StdOut.WriteLine "</inventory_module>"
Wscript.StdOut.WriteLine "</inventory>"
Wscript.StdOut.WriteLine "</datalist>"
Wscript.StdOut.WriteLine "</inventory_module>"
Wscript.StdOut.WriteLine "</inventory>"
End If

View File

@ -2,24 +2,34 @@
' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es> ' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es>
' This plugin extends agent inventory feature. Only enterprise version ' This plugin extends agent inventory feature. Only enterprise version
' -------------------------------------------------------------------------- ' --------------------------------------------------------------------------
on error resume next
'WMI domain/workgroup info 'WMI domain/workgroup info
Wscript.StdOut.WriteLine "<inventory>"
Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>Domain</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>"
strComputer = "." strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT Domain FROM Win32_ComputerSystem") Set colItems = objWMIService.ExecQuery("SELECT Domain FROM Win32_ComputerSystem")
For Each objItem In colItems
on error resume next
flag = colItems.Count
If (err.number <> 0) Then
flag = true
Else
flag = false
End If
on error goto 0
'Print only when there's results
If (NOT flag) Then
Wscript.StdOut.WriteLine "<inventory>"
Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>Domain</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>"
For Each objItem In colItems
WScript.StdOut.WriteLine "<data><![CDATA[" & objItem.Domain & "]]></data>" WScript.StdOut.WriteLine "<data><![CDATA[" & objItem.Domain & "]]></data>"
Next Next
Wscript.StdOut.WriteLine "</datalist>"
Wscript.StdOut.WriteLine "</datalist>" Wscript.StdOut.WriteLine "</inventory_module>"
Wscript.StdOut.WriteLine "</inventory_module>" Wscript.StdOut.WriteLine "</inventory>"
Wscript.StdOut.WriteLine "</inventory>" End If

View File

@ -2,7 +2,6 @@
' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es> ' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es>
' This plugin extends agent inventory feature. Only enterprise version ' This plugin extends agent inventory feature. Only enterprise version
' -------------------------------------------------------------------------- ' --------------------------------------------------------------------------
on error resume next
'WMI real interfaces info 'WMI real interfaces info
' exlusions: ' exlusions:
' VBox network interfaces ' VBox network interfaces
@ -10,12 +9,6 @@ on error resume next
' '
'nic where "guid is not null and not PNPDeviceID like 'ROOT%'" 'nic where "guid is not null and not PNPDeviceID like 'ROOT%'"
Wscript.StdOut.WriteLine "<inventory>"
Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>NIC</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>"
strComputer = "." strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapter " & _ Set colAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapter " & _
@ -24,8 +17,25 @@ Set colAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapter "
"and not ServiceName is null " & _ "and not ServiceName is null " & _
"and not ServiceName like 'vwifimp' ") "and not ServiceName like 'vwifimp' ")
For Each iface In colAdapters on error resume next
' return model MACAddress IPAddress flag = colAdapters.Count
If (err.number <> 0) Then
flag = true
Else
flag = false
End If
on error goto 0
'Print only when there's results
If (NOT flag) Then
Wscript.StdOut.WriteLine "<inventory>"
Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>NIC</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>"
For Each iface In colAdapters
' return model MACAddress IPAddress
set ifaces_cfg = objWMIService.ExecQuery("Select ipaddress from Win32_NetworkAdapterConfiguration Where Caption='" & iface.caption & "'") set ifaces_cfg = objWMIService.ExecQuery("Select ipaddress from Win32_NetworkAdapterConfiguration Where Caption='" & iface.caption & "'")
Wscript.StdOut.Write "<data><![CDATA[" & iface.ProductName & ";" & iface.MACAddress & ";" Wscript.StdOut.Write "<data><![CDATA[" & iface.ProductName & ";" & iface.MACAddress & ";"
@ -35,8 +45,9 @@ For Each iface In colAdapters
end if end if
next next
wscript.stdOut.WriteLine "]]></data>" wscript.stdOut.WriteLine "]]></data>"
Next Next
Wscript.StdOut.WriteLine "</datalist>" Wscript.StdOut.WriteLine "</datalist>"
Wscript.StdOut.WriteLine "</inventory_module>" Wscript.StdOut.WriteLine "</inventory_module>"
Wscript.StdOut.WriteLine "</inventory>" Wscript.StdOut.WriteLine "</inventory>"
End If

View File

@ -2,25 +2,35 @@
' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es> ' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es>
' This plugin extends agent inventory feature. Only enterprise version ' This plugin extends agent inventory feature. Only enterprise version
' -------------------------------------------------------------------------- ' --------------------------------------------------------------------------
on error resume next
'WMI mobo info 'WMI mobo info
Wscript.StdOut.WriteLine "<inventory>"
Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>Motherboard</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>"
strComputer = "." strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
'Set colMobos = objWMIService.ExecQuery("Select name,product,manufacturer from Win32_baseboard") 'Set colMobos = objWMIService.ExecQuery("Select name,product,manufacturer from Win32_baseboard")
Set colMobos2 = objWMIService.ExecQuery("Select manufacturer,model,OEMStringArray from Win32_computersystem") Set colMobos2 = objWMIService.ExecQuery("Select manufacturer,model,OEMStringArray from Win32_computersystem")
For Each mobo In colMobos2 on error resume next
flag = colItems.Count
If (err.number <> 0) Then
flag = true
Else
flag = false
End If
on error goto 0
'Print only when there's results
If (NOT flag) Then
Wscript.StdOut.WriteLine "<inventory>"
Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>Motherboard</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>"
For Each mobo In colMobos2
Wscript.StdOut.WriteLine "<data><![CDATA[" & mobo.manufacturer & ";" & mobo.model & ";" & mobo.OEMStringArray(0) & "]]></data>" Wscript.StdOut.WriteLine "<data><![CDATA[" & mobo.manufacturer & ";" & mobo.model & ";" & mobo.OEMStringArray(0) & "]]></data>"
Next Next
Wscript.StdOut.WriteLine "</datalist>"
Wscript.StdOut.WriteLine "</inventory_module>"
Wscript.StdOut.WriteLine "</inventory>"
Wscript.StdOut.WriteLine "</datalist>"
Wscript.StdOut.WriteLine "</inventory_module>"
Wscript.StdOut.WriteLine "</inventory>"
End If

View File

@ -2,28 +2,38 @@
' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es> ' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es>
' This plugin extends agent inventory feature. Only enterprise version ' This plugin extends agent inventory feature. Only enterprise version
' -------------------------------------------------------------------------- ' --------------------------------------------------------------------------
on error resume next
'WMI monitorsinfo 'WMI monitorsinfo
Wscript.StdOut.WriteLine "<inventory>"
Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>Monitors</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>"
strComputer = "." strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colDisplays = objWMIService.ExecQuery("Select caption,pnpdeviceid from win32_desktopmonitor") Set colDisplays = objWMIService.ExecQuery("Select caption,pnpdeviceid from win32_desktopmonitor")
For Each display In colDisplays on error resume next
flag = colDisplays.Count
If (err.number <> 0) Then
flag = true
Else
flag = false
End If
on error goto 0
'Print only when there's results
If (NOT flag) Then
Wscript.StdOut.WriteLine "<inventory>"
Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>Monitors</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>"
For Each display In colDisplays
if (NOT isNull(display.pnpdeviceid)) then if (NOT isNull(display.pnpdeviceid)) then
Wscript.StdOut.WriteLine "<data><![CDATA[" & display.caption _ Wscript.StdOut.WriteLine "<data><![CDATA[" & display.caption _
& ";" & display.pnpdeviceid _ & ";" & display.pnpdeviceid _
& "]]></data>" & "]]></data>"
end if end if
Next Next
Wscript.StdOut.WriteLine "</datalist>"
Wscript.StdOut.WriteLine "</inventory_module>"
Wscript.StdOut.WriteLine "</inventory>"
Wscript.StdOut.WriteLine "</datalist>"
Wscript.StdOut.WriteLine "</inventory_module>"
Wscript.StdOut.WriteLine "</inventory>"
End If

View File

@ -2,24 +2,34 @@
' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es> ' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es>
' This plugin extends agent inventory feature. Only enterprise version ' This plugin extends agent inventory feature. Only enterprise version
' -------------------------------------------------------------------------- ' --------------------------------------------------------------------------
on error resume next
'WMI OS version 'WMI OS version
Wscript.StdOut.WriteLine "<inventory>"
Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>OSVersion</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>"
strComputer = "." strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set cols = objWMIService.ExecQuery("SELECT version from win32_operatingsystem") Set cols = objWMIService.ExecQuery("SELECT version from win32_operatingsystem")
For Each data In cols on error resume next
Wscript.StdOut.WriteLine "<data><![CDATA[" & data.version & "]]></data>" flag = cols.Count
Next If (err.number <> 0) Then
flag = true
Else
flag = false
End If
on error goto 0
Wscript.StdOut.WriteLine "</datalist>" 'Print only when there's results
Wscript.StdOut.WriteLine "</inventory_module>" If (NOT flag) Then
Wscript.StdOut.WriteLine "</inventory>" Wscript.StdOut.WriteLine "<inventory>"
Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>OSVersion</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>"
For Each data In cols
Wscript.StdOut.WriteLine "<data><![CDATA[" & data.version & "]]></data>"
Next
Wscript.StdOut.WriteLine "</datalist>"
Wscript.StdOut.WriteLine "</inventory_module>"
Wscript.StdOut.WriteLine "</inventory>"
End If

View File

@ -2,16 +2,8 @@
' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es> ' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es>
' This plugin extends agent inventory feature. Only enterprise version ' This plugin extends agent inventory feature. Only enterprise version
' -------------------------------------------------------------------------- ' --------------------------------------------------------------------------
On Error Resume Next
'WMI printers attached 'WMI printers attached
Wscript.StdOut.WriteLine "<inventory>"
Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>Printers</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>"
function validPort(port) function validPort(port)
if strComp(port,"SHRFAX:") = 0 then if strComp(port,"SHRFAX:") = 0 then
validPort = false validPort = false
@ -31,7 +23,24 @@ end function
Set oWMI = GetObject("winmgmts:\\" & "." & "\root\cimv2") Set oWMI = GetObject("winmgmts:\\" & "." & "\root\cimv2")
Set colPrinters = oWMI.ExecQuery("Select * from Win32_Printer",,48) Set colPrinters = oWMI.ExecQuery("Select * from Win32_Printer",,48)
For Each objPrinter in colPrinters on error resume next
flag = colPrinters.Count
If (err.number <> 0) Then
flag = true
Else
flag = false
End If
on error goto 0
'Print only when there's results
If (NOT flag) Then
Wscript.StdOut.WriteLine "<inventory>"
Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>Printers</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>"
For Each objPrinter in colPrinters
if validPort (objPrinter.PortName) then if validPort (objPrinter.PortName) then
set tcp_port_exists = 0 set tcp_port_exists = 0
WScript.stdOut.Write "<data><![CDATA[" & _ WScript.stdOut.Write "<data><![CDATA[" & _
@ -39,10 +48,22 @@ For Each objPrinter in colPrinters
objPrinter.DriverName & ";" objPrinter.DriverName & ";"
If (objPrinter.Local) Then If (objPrinter.Local) Then
Set colPorts = oWMI.ExecQuery("Select HostAddress from Win32_TCPIPPrinterPort where Name like '" & objPrinter.PortName & "'",,48) Set colPorts = oWMI.ExecQuery("Select HostAddress from Win32_TCPIPPrinterPort where Name like '" & objPrinter.PortName & "'",,48)
on error resume next
flag = colPorts.Count
If (err.number <> 0) Then
flag = true
Else
flag = false
End If
on error goto 0
'Print only when there's results
If (NOT flag) Then
For Each objPort in colPorts For Each objPort in colPorts
tcp_port_exists = 1 tcp_port_exists = 1
Wscript.stdOut.Write objPort.HostAddress Wscript.stdOut.Write objPort.HostAddress
Next Next
End If
If (tcp_port_exists = 0) Then If (tcp_port_exists = 0) Then
Wscript.stdOut.Write objPrinter.PortName Wscript.stdOut.Write objPrinter.PortName
End If End If
@ -51,9 +72,9 @@ For Each objPrinter in colPrinters
End If End If
wscript.stdOut.WriteLine "]]></data>" wscript.stdOut.WriteLine "]]></data>"
end if end if
Next Next
Wscript.StdOut.WriteLine "</datalist>"
Wscript.StdOut.WriteLine "</datalist>" Wscript.StdOut.WriteLine "</inventory_module>"
Wscript.StdOut.WriteLine "</inventory_module>" Wscript.StdOut.WriteLine "</inventory>"
Wscript.StdOut.WriteLine "</inventory>" End If

View File

@ -3,21 +3,20 @@
' (c) 2015 Sancho Lerena <slerena@artica.es> ' (c) 2015 Sancho Lerena <slerena@artica.es>
' This plugin extends agent inventory feature. Only enterprise version ' This plugin extends agent inventory feature. Only enterprise version
' ---------------------------------------------------------------- ' ----------------------------------------------------------------
on error resume next
Set oShell = WScript.CreateObject ("WScript.Shell")
Set objExec = oShell.Exec("cmd.exe /C wmic os get ""SerialNumber"" | find /v ""SerialNumber"" ")
Do
line = objExec.StdOut.ReadLine()
s = s & line
Loop While Not objExec.Stdout.atEndOfStream
Wscript.StdOut.WriteLine "<inventory>" Wscript.StdOut.WriteLine "<inventory>"
Wscript.StdOut.WriteLine "<inventory_module>" Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>product_ID</name>" Wscript.StdOut.WriteLine "<name>product_ID</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>" Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>" Wscript.StdOut.WriteLine "<datalist>"
Set oShell = WScript.CreateObject ("WScript.Shell")
Set objExec = oShell.Exec("cmd.exe /C wmic os get ""SerialNumber"" | find /v ""SerialNumber"" ")
Do
line = objExec.StdOut.ReadLine()
s = s & line
Loop While Not objExec.Stdout.atEndOfStream
Wscript.StdOut.WriteLine "<data><![CDATA[" & Replace(Replace(s, chr(013), ""), chr(010), "") & "]]></data>" Wscript.StdOut.WriteLine "<data><![CDATA[" & Replace(Replace(s, chr(013), ""), chr(010), "") & "]]></data>"
Wscript.StdOut.WriteLine "</datalist>" Wscript.StdOut.WriteLine "</datalist>"
Wscript.StdOut.WriteLine "</inventory_module>" Wscript.StdOut.WriteLine "</inventory_module>"

View File

@ -4,22 +4,32 @@
' This plugin extends agent inventory feature. Only enterprise version ' This plugin extends agent inventory feature. Only enterprise version
' ---------------------------------------------------------------- ' ----------------------------------------------------------------
on error resume next
Wscript.StdOut.WriteLine "<inventory>"
Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>product_key</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>"
strComputer = "." strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProducts = objWMIService.ExecQuery("Select OA3xOriginalProductKey from SoftwareLicensingService") Set colProducts = objWMIService.ExecQuery("Select OA3xOriginalProductKey from SoftwareLicensingService")
For Each product In colProducts on error resume next
Wscript.StdOut.WriteLine "<data><![CDATA[" & product.OA3xOriginalProductKey & "]]></data>" flag = colProducts.Count
Next If (err.number <> 0) Then
flag = true
Else
flag = false
End If
on error goto 0
Wscript.StdOut.WriteLine "</datalist>" 'Print only when there's results
Wscript.StdOut.WriteLine "</inventory_module>" If (NOT flag) Then
Wscript.StdOut.WriteLine "</inventory>" Wscript.StdOut.WriteLine "<inventory>"
Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>product_key</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>"
For Each product In colProducts
Wscript.StdOut.WriteLine "<data><![CDATA[" & product.OA3xOriginalProductKey & "]]></data>"
Next
Wscript.StdOut.WriteLine "</datalist>"
Wscript.StdOut.WriteLine "</inventory_module>"
Wscript.StdOut.WriteLine "</inventory>"
End If

View File

@ -2,27 +2,37 @@
' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es> ' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es>
' This plugin extends agent inventory feature. Only enterprise version ' This plugin extends agent inventory feature. Only enterprise version
' -------------------------------------------------------------------------- ' --------------------------------------------------------------------------
on error resume next
'WMI raminfo 'WMI raminfo
Wscript.StdOut.WriteLine "<inventory>"
Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>RAM</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>"
strComputer = "." strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colRAMs = objWMIService.ExecQuery("Select deviceLocator,capacity,speed from Win32_PhysicalMemory") Set colRAMs = objWMIService.ExecQuery("Select deviceLocator,capacity,speed from Win32_PhysicalMemory")
For Each ram In colRAMs on error resume next
flag = colRAMs.Count
If (err.number <> 0) Then
flag = true
Else
flag = false
End If
on error goto 0
'Print only when there's results
If (NOT flag) Then
Wscript.StdOut.WriteLine "<inventory>"
Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>RAM</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>"
For Each ram In colRAMs
Wscript.StdOut.WriteLine "<data><![CDATA[" & ram.deviceLocator _ Wscript.StdOut.WriteLine "<data><![CDATA[" & ram.deviceLocator _
& ";" & Abs(Round((ram.capacity/(1024*1024)),2)) & " MB" _ & ";" & Abs(Round((ram.capacity/(1024*1024)),2)) & " MB" _
& ";" & ram.speed & " MHz"_ & ";" & ram.speed & " MHz"_
& "]]></data>" & "]]></data>"
Next Next
Wscript.StdOut.WriteLine "</datalist>"
Wscript.StdOut.WriteLine "</inventory_module>"
Wscript.StdOut.WriteLine "</inventory>"
Wscript.StdOut.WriteLine "</datalist>"
Wscript.StdOut.WriteLine "</inventory_module>"
Wscript.StdOut.WriteLine "</inventory>"
End If

View File

@ -2,27 +2,39 @@
' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es> ' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es>
' This plugin extends agent inventory feature. Only enterprise version ' This plugin extends agent inventory feature. Only enterprise version
' -------------------------------------------------------------------------- ' --------------------------------------------------------------------------
on error resume next
'WMI video_card_info 'WMI video_card_info
Wscript.StdOut.WriteLine "<inventory>"
Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>Video</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>"
strComputer = "." strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colVideoCards = objWMIService.ExecQuery("Select caption,AdapterRAM,PNPDeviceID from win32_videocontroller") Set colVideoCards = objWMIService.ExecQuery("Select caption,AdapterRAM,PNPDeviceID from win32_videocontroller")
For Each vcard In colVideoCards on error resume next
Wscript.StdOut.WriteLine "<data><![CDATA[" & vcard.caption _ flag = colVideoCards.Count
& ";" & Round(Abs(vcard.AdapterRAM/(1024*1024)),2) & " MB" _ If (err.number <> 0) Then
& ";" & vcard.PNPDeviceID _ flag = true
& "]]></data>" Else
Next flag = false
End If
on error goto 0
Wscript.StdOut.WriteLine "</datalist>" 'Print only when there's results
Wscript.StdOut.WriteLine "</inventory_module>" If (NOT flag) Then
Wscript.StdOut.WriteLine "</inventory>" Wscript.StdOut.WriteLine "<inventory>"
Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>Video</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>"
For Each vcard In colVideoCards
Wscript.StdOut.Write "<data><![CDATA[" & vcard.caption & ";"
on error resume next
Wscript.StdOut.Write Round(Abs(vcard.AdapterRAM/(1024*1024)),2) & " MB"
on error goto 0
Wscript.StdOut.Write ";" & vcard.PNPDeviceID
Wscript.StdOut.WriteLine "]]></data>"
Next
Wscript.StdOut.WriteLine "</datalist>"
Wscript.StdOut.WriteLine "</inventory_module>"
Wscript.StdOut.WriteLine "</inventory>"
End If