Поделиться через


Набор запросов для Report Builder SCCM

В связи с тем, что потребности превышают возможности стандартных отчетов SCCM, есть необходимость на создание своих отчетов с требуемым набором параметров.
Есть хорошая статья (блог) у Maksim Lyzaev по созданию отчетов в Report Builder, поэтому повторять нет смысла.
Искать необходимую информацию не было не желания, не времени, поэтому первым делом начал поиск готовых запросов с общей и в тоже время расширенной информацией по Hardware, Software и Antimailware. У МС есть наборы простых запросов,  но не то :)
Начал поиск по таблицам SQL нужных мне параметров для отображения и решил поделится простыми, но для меня полезными запросами, вдруг кому пригодится.

Что мы делаем. Точнее что значат параметры в запросах:
SELECT - выбираем столбцы которые необходимо выводить. Перечисляем их через запятую.
Здесь Вы можете увидеть что вначале названия столбца есть аббревиатура, данную аббревиатуру мы приравниваем к таблице в которой мы берем столбец.
FROM - указываем таблицу из которой мы берем столбцы. Если мы будем объединять информацию с нескольких таблиц, то нам необходимо объединить их по одному из столбцов в котором есть общая информация, например ID компьютера.

WHERE - можно указать поиск по какому либо значению из столбца. Например если мы ищем информацию по определенной коллекции или компьютеру.

Отчет для Antimalware 

SELECT vRS.Name0 'Computer Name', vRS.User_Name0 'User Name', AmwHS.Version, AmwHS.RtpEnabled, AmwHS.OnAccessProtectionEnabled, AmwHS.IoavProtectionEnabled, AmwHS.BehaviorMonitorEnabled, AmwHS.AntivirusEnabled, AmwHS.AntispywareEnabled, AmwHS.EngineVersion, AmwHS.LastQuickScanDateTimeStart, AmwHS.LastQuickScanDateTimeEnd, AmwHS.LastFullScanDateTimeStart, AmwHS.LastFullScanDateTimeEnd, AmwHS.AntivirusSignatureUpdateDateTime, AmwHS.AntispywareSignatureUpdateDateTime, AmwHS.AntivirusSignatureVersion, AmwHS.AntispywareSignatureVersion, AmwHS.NisEnabled, AmwHS.NisEngineVersion, AmwHS.NisSignatureVersion
FROM v_R_System vRS JOIN v_GS_AntimalwareHealthStatus AmwHS ON AmwHS.ResourceID = vRS.ResourceID

_________________________________________________________________________________________________________

Отчет по Hardware

SELECT vRS.Name0 'Computer Name', vRS.User_Name0 'User Name', vGS_OS.Caption0 'Operating System', vGS_OS.Version0 'OS Version', vGS_P.Name0 'CPU Name', vGS_P.NormSpeed0 'CPU Speed (GHz)', vGS_P.NumberOfCores0 'Number Of Cores', vGS_P.NumberOfLogicalProcessors0 'Logical Processors', vCAL_PC.NumOfProc 'Sockets', vGS_BB.Manufacturer0 'Manufacturer BASEBOARD', vGS_BB.Product0 'Product  BASEBOARD', vGS_BB.SerialNumber0 'SN BASEBOARD', vGS_Mem.Manufacturer0 'Manufacturer RAM', vGS_Mem.SerialNumber0 'SN RAM', vGS_Mem.Speed0 'Speed RAM', vGS_Mem.DeviceLocator0 'Slot RAM', vGS_Mem.Capacity0 'Capacity RAM (Mb)', vGSD.Model0 'HDD Model0', vGSD.Size0 'HDD Size (Gb)'
FROM v_R_System vRS JOIN v_GS_OPERATING_SYSTEM vGS_OS ON vGS_OS.ResourceID = vRS.ResourceID JOIN v_GS_PROCESSOR vGS_P ON vGS_P.ResourceID = vRS.ResourceID JOIN v_CAL_Processor_Count vCAL_PC ON vCAL_PC.MachineID = vRS.ResourceID JOIN v_GS_BASEBOARD vGS_BB ON vGS_BB.ResourceID = vRS.ResourceID JOIN v_GS_PHYSICAL_MEMORY vGS_Mem ON vGS_Mem.ResourceID = vRS.ResourceID JOIN v_GS_DISK vGSD ON vGSD.ResourceID = vRS.ResourceID

_________________________________________________________________________________________________________

Отчет по Software

SELECT vRS.Name0 'Computer Name', vRS.User_Name0 'User Name', vARP.DisplayName0 'Program Name', vARP.InstallDate0 'Install Date', vARP.Publisher0 'Publisher', vARP.Version0 'Version'
FROM v_R_System vRS JOIN v_Add_Remove_Programs vARP ON vARP.ResourceID = vRS.ResourceID

_________________________________________________________________________________________________________
Отчет по железу с сумарным ОЗУ и Жесткий диском + IP адреса указаны в одном столбце через ";"
ПК находящихся в коллекции *****

SELECT DISTINCT
vRS.Name0 'Computer Name', 
vRS.User_Name0 'User Name',
vGS_P.Name0 'CPU Name',
vGS_BB.Manufacturer0 'Manufacturer BASEBOARD',
vGS_BB.Product0 'Product BASEBOARD',
vGS_BB.SerialNumber0 'SN BASEBOARD',
--vGS_Mem.BankLabel0 'Bank Label',
sum(isnull(cast(vGS_Mem.Capacity0 as bigint), 0)) 'Capacity RAM (Mb)',
--vGSD.Model0 'HDD Model0',
sum(isnull(cast(vGSD.Size0 as bigint), 0)) 'HDD Size (Gb)',
(select
    vIP.IP_Addresses0 + '; '
from
    System_IP_Address_ARR vIP
where
    vIP.ItemKey = vRS.ResourceID
FOR XML PATH('')) 'IP Addresses'

FROM 
v_R_System vRS JOIN v_GS_OPERATING_SYSTEM vGS_OS ON vGS_OS.ResourceID = vRS.ResourceID
JOIN v_GS_PROCESSOR vGS_P ON vGS_P.ResourceID = vRS.ResourceID
--JOIN v_CAL_Processor_Count vCAL_PC ON vCAL_PC.MachineID = vRS.ResourceID
JOIN v_GS_BASEBOARD vGS_BB ON vGS_BB.ResourceID = vRS.ResourceID
JOIN v_GS_PHYSICAL_MEMORY vGS_Mem ON vGS_Mem.ResourceID = vRS.ResourceID
JOIN v_GS_DISK vGSD ON vGSD.ResourceID = vRS.ResourceID
--JOIN System_IP_Address_ARR vIP ON vIP.ItemKey = vRS.ResourceID
join v_FullCollectionMembership vFCM ON vFCM.Name = vRS.Name0

WHERE CollectionID like '*****'

group by
vRS.ResourceID,
vRS.Name0,
vRS.User_Name0,
vGS_P.Name0,
vGS_BB.Manufacturer0,
vGS_BB.Product0,
vGS_BB.SerialNumber0

order by vRS.Name0 asc
_________________________________________________________________________________________________________

Информация по Hot Fix установленных на ПК находящихся в коллекции *****

select
    vRS.Name0 'Computer Name', 
    vRS.User_Name0 'User Name',
    --vOS.BuildNumber00 'Build Number',
    vOS.Version00 'Version',
    (select 
        vED.HotFixID00 + '; '
    from
        QUICK_FIX_ENGINEERING_DATA vED
    where
        vED.MachineID = vRS.ResourceID
    FOR XML PATH('')) 'Hot Fix ID'
from
    v_R_System vRS
    join Operating_System_DATA vOS ON vOS.MachineID = vRS.ResourceID
    join v_FullCollectionMembership vFCM ON vFCM.Name = vRS.Name0
where
    vFCM.CollectionID like '*****'
group by
    vRS.Name0,
    vRS.User_Name0,
    vOS.Version00,
    vRS.ResourceID

_________________________________________________________________________________________________________
Информация по агентам SCCM

select
    vRS.Name0 'Computer Name', 
    vRS.User_Name0 'User Name',
    vOS.Version00 'Version',
    vCH_CS.LastDDR 'Last DDR',
    vRS.last_logon_timestamp0 'Last Logon',
        case
        when vFCM.IsClient = 0 then 'no'
        else 'yes'
        end 'Client',
    vRS.Distinguished_Name0 'Distinguished Name'

from
    v_R_System vRS
    left outer join Operating_System_DATA vOS ON vOS.MachineID = vRS.ResourceID
    left outer join v_FullCollectionMembership vFCM ON vFCM.Name = vRS.Name0
    left outer join CH_ClientSummary vCH_CS ON vOS.MachineID = vCH_CS.MachineID
where
    vFCM.CollectionID like '*****' and vRS.Name0 like 'hostname'
group by
    vRS.Name0,
    vRS.User_Name0,
    vOS.Version00,
    vRS.ResourceID,
    vCH_CS.LastDDR,
    vRS.last_logon_timestamp0,
    vRS.Active0,
    vRS.Distinguished_Name0,
    vFCM.IsClient

order by vRS.Name0 asc


__________________________________________________________________________________________________

Файлы инвентаризации

select 
vSGSS.FileID,
vSGSS.FileName,
vSGSS.FileVersion,
vSGSS.FileSize,
vSGSS.modifiedDate,
vSGSS.FilePath,
vRS.cn0 
from vSMS_G_System_SoftwareFile vSGSS JOIN v_R_System vRS ON vRS.ResourceID = vSGSS.ClientID

___________________________________________________________________________________________________
Отчет по софту

SELECT
vRS.Name0 'Computer Name', 
vRS.User_Name0 'User Name',
vARP.DisplayName0 'Program Name',
vARP.InstallDate0 'Install Date',
vARP.Publisher0 'Publisher',
vARP.Version0 'Version'

FROM
v_R_System vRS JOIN v_Add_Remove_Programs vARP ON vARP.ResourceID = vRS.ResourceID

_____________________________________________________________________________________________________

Просмотр обновления ПО "Adobe Reader"

SELECT
vRS.Name0 'Computer Name', 
vRS.User_Name0 'User Name',
vARP.DisplayName0 'Program Name',
vARP.InstallDate0 'Install Date',
--to_char (InstallDate0, 'MON DDth, YYYY'),
vARP.Publisher0 'Publisher',
vARP.Version0 'Version'

FROM
v_R_System vRS JOIN v_Add_Remove_Programs vARP ON vARP.ResourceID = vRS.ResourceID
    join v_FullCollectionMembership vFCM ON vFCM.Name = vRS.Name0
WHERE CollectionID like '*****' and vARP.DisplayName0 like '%Adobe Acrobat Reader%'

Я не стал убирать закомментированные строки, при необходимости их можно добавлять и убирать. Вы просто делаете выборку по таблице и смо��рите какие столбцы Вам будут необходимы.

Надеюсь кто то тоже поделится своим опытом и полезностями :)