Набор запросов для 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%'
Я не стал убирать закомментированные строки, при необходимости их можно добавлять и убирать. Вы просто делаете выборку по таблице и смо��рите какие столбцы Вам будут необходимы.
Надеюсь кто то тоже поделится своим опытом и полезностями :)