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
Wscript.StdOut.WriteLine "<data><![CDATA[" & cdromd.caption _ flag = colCDROMDrives.Count
& ";" & cdromd.description _ If (err.number <> 0) Then
& ";" & cdromd.drive _ flag = true
& ";" & cdromd.deviceid _ Else
& "]]></data>" flag = false
Next 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>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 _
& ";" & cdromd.description _
& ";" & cdromd.drive _
& ";" & cdromd.deviceid _
& "]]></data>"
Next
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 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
Wscript.StdOut.WriteLine "<data><![CDATA[" & cpu.name & ";" & cpu.maxclockspeed & " MHz;" & cpu.caption & "]]></data>" flag = colCPUs.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>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>"
Next
Wscript.StdOut.WriteLine "</datalist>"
Wscript.StdOut.WriteLine "</inventory_module>"
Wscript.StdOut.WriteLine "</inventory>"
End If

View File

@ -2,33 +2,43 @@
' (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
If ((not IsNull(disco.size)) AND (disco.size > 0)) then flag = colHDDs.Count
Wscript.StdOut.Write "<data><![CDATA[" & disco.caption _ If (err.number <> 0) Then
& ";" & Abs(Round((disco.size/(1024*1024*1024)),2)) & " GB" flag = true
If (not IsNull(disco.serialnumber)) then Else
Wscript.StdOut.Write ";" & disco.serialnumber flag = false
Else End If
Wscript.StdOut.Write ";" & disco.signature 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
Wscript.StdOut.Write "<data><![CDATA[" & disco.caption _
& ";" & Abs(Round((disco.size/(1024*1024*1024)),2)) & " GB"
If (not IsNull(disco.serialnumber)) then
Wscript.StdOut.Write ";" & disco.serialnumber
Else
Wscript.StdOut.Write ";" & disco.signature
End If
Wscript.StdOut.WriteLine "]]></data>"
End If End If
Wscript.StdOut.WriteLine "]]></data>" Next
End If
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
WScript.StdOut.WriteLine "<data><![CDATA[" & objItem.Domain & "]]></data>"
Next
on error resume next
flag = colItems.Count
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>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>"
Next
Wscript.StdOut.WriteLine "</datalist>"
Wscript.StdOut.WriteLine "</inventory_module>"
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,19 +17,37 @@ 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
set ifaces_cfg = objWMIService.ExecQuery("Select ipaddress from Win32_NetworkAdapterConfiguration Where Caption='" & iface.caption & "'") 'Print only when there's results
Wscript.StdOut.Write "<data><![CDATA[" & iface.ProductName & ";" & iface.MACAddress & ";" If (NOT flag) Then
for each iface_cfg in ifaces_cfg Wscript.StdOut.WriteLine "<inventory>"
if ( iface_cfg.IPAddress(0) <> "" ) then Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.Write trim(iface_cfg.IPAddress(0)) Wscript.StdOut.WriteLine "<name>NIC</name>"
end if Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
next Wscript.StdOut.WriteLine "<datalist>"
wscript.stdOut.WriteLine "]]></data>"
Next
Wscript.StdOut.WriteLine "</datalist>" For Each iface In colAdapters
Wscript.StdOut.WriteLine "</inventory_module>" ' return model MACAddress IPAddress
Wscript.StdOut.WriteLine "</inventory>"
set ifaces_cfg = objWMIService.ExecQuery("Select ipaddress from Win32_NetworkAdapterConfiguration Where Caption='" & iface.caption & "'")
Wscript.StdOut.Write "<data><![CDATA[" & iface.ProductName & ";" & iface.MACAddress & ";"
for each iface_cfg in ifaces_cfg
if ( iface_cfg.IPAddress(0) <> "" ) then
Wscript.StdOut.Write trim(iface_cfg.IPAddress(0))
end if
next
wscript.stdOut.WriteLine "]]></data>"
Next
Wscript.StdOut.WriteLine "</datalist>"
Wscript.StdOut.WriteLine "</inventory_module>"
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
Wscript.StdOut.WriteLine "<data><![CDATA[" & mobo.manufacturer & ";" & mobo.model & ";" & mobo.OEMStringArray(0) & "]]></data>" flag = colItems.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>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>"
Next
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
if (NOT isNull(display.pnpdeviceid)) then flag = colDisplays.Count
Wscript.StdOut.WriteLine "<data><![CDATA[" & display.caption _ If (err.number <> 0) Then
& ";" & display.pnpdeviceid _ flag = true
& "]]></data>" Else
end if flag = false
Next 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>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
Wscript.StdOut.WriteLine "<data><![CDATA[" & display.caption _
& ";" & display.pnpdeviceid _
& "]]></data>"
end if
Next
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,29 +23,58 @@ 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
if validPort (objPrinter.PortName) then flag = colPrinters.Count
set tcp_port_exists = 0 If (err.number <> 0) Then
WScript.stdOut.Write "<data><![CDATA[" & _ flag = true
objPrinter.DeviceID & ";" & _ Else
objPrinter.DriverName & ";" flag = false
If (objPrinter.Local) Then End If
Set colPorts = oWMI.ExecQuery("Select HostAddress from Win32_TCPIPPrinterPort where Name like '" & objPrinter.PortName & "'",,48) on error goto 0
For Each objPort in colPorts
tcp_port_exists = 1 'Print only when there's results
Wscript.stdOut.Write objPort.HostAddress If (NOT flag) Then
Next Wscript.StdOut.WriteLine "<inventory>"
If (tcp_port_exists = 0) Then Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.stdOut.Write objPrinter.PortName 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
set tcp_port_exists = 0
WScript.stdOut.Write "<data><![CDATA[" & _
objPrinter.DeviceID & ";" & _
objPrinter.DriverName & ";"
If (objPrinter.Local) Then
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
tcp_port_exists = 1
Wscript.stdOut.Write objPort.HostAddress
Next
End If
If (tcp_port_exists = 0) Then
Wscript.stdOut.Write objPrinter.PortName
End If
Else
Wscript.stdOut.Write objPrinter.ServerName
End If End If
Else wscript.stdOut.WriteLine "]]></data>"
Wscript.stdOut.Write objPrinter.ServerName end if
End If Next
wscript.stdOut.WriteLine "]]></data>"
end if
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
Wscript.StdOut.WriteLine "<data><![CDATA[" & ram.deviceLocator _ flag = colRAMs.Count
& ";" & Abs(Round((ram.capacity/(1024*1024)),2)) & " MB" _ If (err.number <> 0) Then
& ";" & ram.speed & " MHz"_ 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>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 _
& ";" & Abs(Round((ram.capacity/(1024*1024)),2)) & " MB" _
& ";" & ram.speed & " MHz"_
& "]]></data>"
Next
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