采集主要从SCCM的数据表中进行直接采集,对于 如何知道 那些表保存了 我们需要的数据,可以在SCCM的界面 查看报表 所用的SQL语句,目前所用的的有如下:
;主机
SELECT SYS.Netbios_Name0, SYS.User_Domain0, SYS.User_Name0, NETW.IPAddress0
FROM v_R_System as SYS
JOIN v_Network_DATA_Serialized NETW on SYS.ResourceID=NETW.ResourceID
Order by SYS.Netbios_Name0
;逻辑磁盘
Select Distinct SYS.Netbios_Name0, Ldisk.Name0, Ldisk.FreeSpace0, Ldisk.Size0
From v_R_System SYS
JOIN v_GS_LOGICAL_DISK Ldisk ON SYS.ResourceID = Ldisk.ResourceID
;软件
Select SYS.Netbios_Name0, SYS.User_Name0, SP.ProductName, SP.CompanyName, SP.ProductVersion
FROM v_GS_SoftwareProduct SP
JOIN v_R_System SYS on SP.ResourceID = SYS.ResourceID
Order by SP.ProductName, SP.ProductVersion
;CPU型号
SELECT SYS.Name as Netbios_Name0, SYS.SiteCode, Processor.Name0, Processor.NormSpeed0, Processor.DeviceID0
FROM v_FullCollectionMembership SYS
JOIN v_GS_PROCESSOR Processor on SYS.ResourceID=Processor.ResourceID
ORDER By SYS.Name
;物理磁盘
Select Distinct SYS.Netbios_Name0, Pdisk.Size0, Pdisk.Description0,
Pdisk.InterfaceType0, Pdisk.Manufacturer0,
Pdisk.MediaType0, Pdisk.DeviceID0
From v_R_System SYS
JOIN v_GS_DISK Pdisk ON SYS.ResourceID = Pdisk.ResourceID
ORDER BY Pdisk.DeviceID0
;网卡和IP
SELECT DISTINCT SYS.Netbios_Name0, Netcard.Description0, Netcard.Manufacturer0, Netcard.AdapterType0, Netcard.MACAddress0, NETW.IPAddress0, NETW.IPSubnet0
FROM v_R_System SYS
JOIN v_GS_NETWORK_ADAPTER Netcard on SYS.ResourceID=Netcard.ResourceID
JOIN v_Network_DATA_Serialized NETW on Netcard.ResourceID=NETW.ResourceID and Netcard.MACAddress0=NETW.MACAddress0
WHERE NETW.IPAddress0 is not NULL
ORDER BY SYS.Netbios_Name0
;物理内存
SELECT SYS.Netbios_Name0, ROUND(MEM.TotalPhysicalMemory0,-3) as TotalPhysicalMemory0
FROM v_GS_X86_PC_MEMORY MEM
JOIN v_R_System SYS ON MEM.ResourceID = SYS.ResourceID
Order By SYS.Netbios_Name0