Posts tagged ‘отчёты’

отчёт по компьютерам в состоянии «Pending reboot» после установки обновлений

 SELECT DISTINCT dbo.v_R_System.Name0, dbo.v_Update_ComplianceStatus.LastEnforcementMessageID, dbo.v_FullCollectionMembership.CollectionID
FROM            dbo.v_R_System INNER JOIN
                         dbo.v_Update_ComplianceStatus ON dbo.v_R_System.ResourceID = dbo.v_Update_ComplianceStatus.ResourceID INNER JOIN
                         dbo.v_FullCollectionMembership ON dbo.v_R_System.ResourceID = dbo.v_FullCollectionMembership.ResourceID
WHERE        (dbo.v_Update_ComplianceStatus.LastEnforcementMessageID = 9) AND (dbo.v_FullCollectionMembership.CollectionID = N'FRA00020')

MAC-адреса физических серверов из определённой коллекции

SELECT DISTINCT 
 TOP (100) PERCENT v_R_SYSTEM.Name0 AS 'Physical Servers', dbo.v_RA_System_MACAddresses.MAC_Addresses0 AS [MAC address], 
 V_GS_COMPUTER_SYSTEM.Model0 AS Model, V_GS_OPERATING_SYSTEM.Caption0 AS [Operating System]
FROM dbo.v_R_System INNER JOIN
 dbo.v_GS_COMPUTER_SYSTEM ON V_GS_COMPUTER_SYSTEM.ResourceID = v_R_SYSTEM.ResourceId INNER JOIN
 dbo.v_FullCollectionMembership ON dbo.v_R_System.ResourceID = dbo.v_FullCollectionMembership.ResourceID INNER JOIN
 dbo.v_GS_OPERATING_SYSTEM ON V_GS_OPERATING_SYSTEM.ResourceId = v_R_SYSTEM.ResourceId INNER JOIN
 dbo.v_RA_System_MACAddresses ON dbo.v_R_System.ResourceID = dbo.v_RA_System_MACAddresses.ResourceID
WHERE (V_GS_OPERATING_SYSTEM.Caption0 LIKE '%Server%') AND (v_R_System.Client0 = 1) AND (NOT (V_GS_COMPUTER_SYSTEM.Model0 LIKE '%Virtual%')) 
 AND (dbo.v_FullCollectionMembership.CollectionID = N'FRA00475')
ORDER BY 'Physical Servers'

Поиск неподдерживаемых моделей компьютеров

Работаю над проектом по миграции с Windows 7 на Windows 10. Заказчик для оформления закупок новых ноутбуков попросил найти компьютеры старых неподдерживаемых моделей и контакты пользователей, которые «связаны» через User Device Affinity.

SELECT        TOP (100) PERCENT v_GS_COMPUTER_SYSTEM.Name0 AS [Computer name], dbo.v_R_User.Full_User_Name0 AS [User name], v_UserMachineRelationship.UniqueUserName AS [User account], 
                         dbo.v_GS_COMPUTER_SYSTEM.Model0 AS Model, dbo.v_UserMachineIntelligence.ConsoleMinutes AS [Console usage, minutes], dbo.v_R_User.Mail0 AS [Email account], 
                         dbo.v_UserMachineIntelligence.LastLoginTime AS [Last login time]
FROM            dbo.v_GS_COMPUTER_SYSTEM INNER JOIN
                         dbo.v_UserMachineRelationship ON v_GS_COMPUTER_SYSTEM.ResourceID = v_UserMachineRelationship.MachineResourceID INNER JOIN
                         dbo.v_UserMachineIntelligence ON v_UserMachineRelationship.MachineResourceID = v_UserMachineIntelligence.MachineResourceID INNER JOIN
                         dbo.v_R_User ON dbo.v_UserMachineRelationship.UniqueUserName = dbo.v_R_User.Unique_User_Name0
WHERE        (dbo.v_GS_COMPUTER_SYSTEM.Model0 LIKE N'%Latitude E6330%') OR
                         (dbo.v_GS_COMPUTER_SYSTEM.Model0 LIKE N'%Latitude E6320%') OR
                         (dbo.v_GS_COMPUTER_SYSTEM.Model0 LIKE N'%Latitude E6230%') OR
                         (dbo.v_GS_COMPUTER_SYSTEM.Model0 LIKE N'%Latitude E6420%') OR
                         (dbo.v_GS_COMPUTER_SYSTEM.Model0 LIKE N'%Latitude E65250%') OR
                         (dbo.v_GS_COMPUTER_SYSTEM.Model0 LIKE N'%Latitude E6430U%') OR
                         (dbo.v_GS_COMPUTER_SYSTEM.Model0 LIKE N'%Precision M3800%') OR
                         (dbo.v_GS_COMPUTER_SYSTEM.Model0 LIKE N'%OptiPlex 960%') OR
                         (dbo.v_GS_COMPUTER_SYSTEM.Model0 LIKE N'%OptiPlex 790%') OR
                         (dbo.v_GS_COMPUTER_SYSTEM.Model0 LIKE N'%OptiPlex 780%') OR
                         (dbo.v_GS_COMPUTER_SYSTEM.Model0 LIKE N'%Latitude E6220%') OR
                         (dbo.v_GS_COMPUTER_SYSTEM.Model0 LIKE N'%Precision T3600%')
ORDER BY [Computer name], [Console usage, minutes] DESC

компьютеры с определёнными обновлениями и без них

По работе пришлось создать два кастомных отчёта: компьютеры с определёнными установленными обновлениями и определённым именем и компьютеры без установленных обновлений. Обычно в таких случаях используются стандартные отчёты, но у нас эти обновления были установлены через пакеты, а объявления позже были удалены, что делало невозможным поиск этой информации в обычных отчётах.

Давно не брал я в руки шашек.:)

SELECT DISTINCT TOP (100) PERCENT dbo.v_R_System.Netbios_Name0
FROM dbo.v_R_System INNER JOIN
dbo.v_GS_QUICK_FIX_ENGINEERING ON dbo.v_R_System.ResourceID = dbo.v_GS_QUICK_FIX_ENGINEERING.ResourceID
WHERE (dbo.v_R_System.Netbios_Name0 LIKE '%PARX0100%' OR
dbo.v_R_System.Netbios_Name0 LIKE '%PARX0602%' OR
dbo.v_R_System.Netbios_Name0 LIKE '%PARX0603%') AND (dbo.v_GS_QUICK_FIX_ENGINEERING.HotFixID0 LIKE '%2427997%' OR
dbo.v_GS_QUICK_FIX_ENGINEERING.HotFixID0 LIKE '%2531912%' OR
dbo.v_GS_QUICK_FIX_ENGINEERING.HotFixID0 LIKE '%2521923%' OR
dbo.v_GS_QUICK_FIX_ENGINEERING.HotFixID0 LIKE '%2577550%' OR
dbo.v_GS_QUICK_FIX_ENGINEERING.HotFixID0 LIKE '%2706168%')
ORDER BY dbo.v_R_System.Netbios_Name0
SELECT DISTINCT TOP (100) PERCENT Netbios_Name0
FROM dbo.v_R_System
WHERE (Netbios_Name0 NOT IN
(SELECT v_R_System_1.Netbios_Name0
FROM dbo.v_R_System AS v_R_System_1 INNER JOIN
dbo.v_GS_QUICK_FIX_ENGINEERING AS v_GS_QUICK_FIX_ENGINEERING_1 ON
v_R_System_1.ResourceID = v_GS_QUICK_FIX_ENGINEERING_1.ResourceID
WHERE (v_GS_QUICK_FIX_ENGINEERING_1.HotFixID0 LIKE '%2427997%') OR
(v_GS_QUICK_FIX_ENGINEERING_1.HotFixID0 LIKE '%2521923%') OR
(v_GS_QUICK_FIX_ENGINEERING_1.HotFixID0 LIKE '%2577550%') OR
(v_GS_QUICK_FIX_ENGINEERING_1.HotFixID0 LIKE '%2706168%') OR
(v_GS_QUICK_FIX_ENGINEERING_1.HotFixID0 LIKE '%2531912%'))) AND (Netbios_Name0 LIKE '%PARX0100%' OR
Netbios_Name0 LIKE '%PARX0101%' OR
Netbios_Name0 LIKE '%PARX0603%')
ORDER BY Netbios_Name0

расширение инвентаризации при помощи MIF

Как известно, SCCM умеет инвентаризировать реестр и WMI. Часто возникает ситуация, когда собираемых сведений недостаточно и инвентаризацию нужно расширить, например, добавить в отчёт информацию о дате закупки ПК, переноса на другое рабочее место, серийный номер с наклейки на корпусе и т.д. Сделать это можно тремя способами, добавляя (или регулярно добавлять скриптами, обновляя) информацию в:

1. реестр и научить SCCM опрашивать нужные ветки и ключи;

2. WMI и научить SCCM опрашивать нужные классы;

3. MIF-файл. Учить не нужно: SCCM уже умеет вычитывать информацию из MIF-файлов (Management Information Format).

Организация Distributed Management Task Force (DMTF) занимается разработкой и поддержкой стандартов для управления системами. DMTF разработала CIM, WBEM (и его реализация на Windows — WMI), DMI и прочие стандарты, которые используются множеством вендоров. DMI — устаревший стандарт для управления программным обеспечением и аппаратными комплектующими, не зависим от вендора, операционной системы, протоколов управления и «железа».

DMI-архитектура состоит из DMI Service Provider (Service Layer — в старых спецификациях) — локальной резидентной программы, постоянно работающей в памяти, которая является связующим звеном между интерфейсом управляющей программы (Management Interface, MI), которая запрашивает информацию из MIF-базы, и DMI-совместимыми программами и аппаратными комплектующими (Component Interface, CI), которые через свой API вносят информацию в MIF-базу. Информация должна быть описана при помощи MIF — системонезависимого формата, а файлы, содержащие информацию о приложениях и комплектующих, называются MIF-файлами. Вся эта схема выглядит примерно так:

А если сказать совсем просто, то SCCM работает с DMI Service Provider через агента аппаратной инвентаризации, который умеет собирать информацию из MIF-файлов. SCCM умеет работать с IDMIF и NOIDMIF.

IDMIF — файлы с уникальным идентификатором, которые не ассоциированы с клиентом SCCM. Эти файлы отсылаются отдельно от отчёта по инвентаризации. В эти файлы вносят информацию, которая не связана напрямую с компьютером, например, имя копира или модель проектора. При удалении этих файлов с компьютера, информация из базы SCCM не удаляется.

NOIDMIF — файлы, привязанные к идентификатору компьютера, с которого они собраны. Информация из NOIDMIF прикрепляется к отчёту об инвентаризации. В эти файлы вносят информацию, связанную с компьютером, например, серийный номер и т.п. При удалении файлов с компьютера, информация удаляется из базы SCCM.

Если классы, описанные в MIF-файлах, являются уникальными, то они появятся в базе SCCM. В ином случае информация будет добавляться в уже существующие таблицы.

Continue reading ‘расширение инвентаризации при помощи MIF’ »

компьютеры с Internet Explorer

Компьютеры с IE 8:

SELECT TOP (100) PERCENT dbo.v_R_System.Name0 AS [Computer name], dbo.v_R_System.User_Name0 AS [User name],
dbo.v_GS_ADD_REMOVE_PROGRAMS.DisplayName0 AS [IE name]
FROM dbo.v_R_System INNER JOIN
dbo.v_GS_ADD_REMOVE_PROGRAMS ON dbo.v_R_System.ResourceID = dbo.v_GS_ADD_REMOVE_PROGRAMS.ResourceID
WHERE (dbo.v_GS_ADD_REMOVE_PROGRAMS.DisplayName0 = ‘Windows Internet Explorer 8’)
ORDER BY [Computer name]

Компьютеры с IE 9:

SELECT DISTINCT
TOP (100) PERCENT dbo.v_R_System.Name0 AS [Computer name], dbo.v_R_System.User_Name0 AS [User name], dbo.v_GS_SoftwareFile.FileName AS [IE name],
dbo.v_GS_SoftwareFile.FileVersion AS [IE version]
FROM dbo.v_GS_SoftwareFile INNER JOIN
dbo.v_R_System ON dbo.v_GS_SoftwareFile.ResourceID = dbo.v_R_System.ResourceID
WHERE (dbo.v_GS_SoftwareFile.FileName = ‘iexplore.exe’) AND (dbo.v_GS_SoftwareFile.FileVersion LIKE ‘9.%’)
ORDER BY [Computer name]

таблицы против представлений

Как известно, Microsoft не публикует информацию о таблицах базы данных SCCM. Я думаю, сделано это по двум причинам: во-первых, структура базы в любой момент может измениться, например, после выхода сервис-пака; во-вторых, снижение количества инцидентов, связанных с любопытством администраторов SCCM (то, что в народе называют «защитой от дурака»).

Часто можно встретить: «У меня не работает отчёт select … from SMS_R_SYSTEM. Где я ошибся в запросе?».

Так в чём разница между отчётами и запросами?

SCCM использует WMI для управления объектами. Информация об объектах хранится в базе SQL Server. При создании коллекции или запроса вы через консоль отправляете WQL(WMI Query Language)-запрос на сервер с установленной ролью SMS Provider (сервер выбирается при установке SCCM, впоследствии роль может быть перенесена на другой сервер), который, в свою очередь, обращается к базе данных и отображает информацию, которую вы запросили. Имена WMI-классов, которые сопоставляются с таблицами базы SCCM, начинаются на SMS_. Например,

select * from SMS_R_System

Соответственно, коллекция, построенная на основе такого запроса, будет содержать абсолютно все учётные записи компьютеров, о которых знает SCCM:

Continue reading ‘таблицы против представлений’ »

SMS SRS Reporting Point failed to monitor SRS Server

Ежечасно компонент SMS_SRS_REPORTING_POINT сыпет ошибкой ID 7402: «SMS SRS Reporting Point failed to monitor SRS Server on «DC». При этом SQL Reporting Services работают, ссылки http://dc/Reports и http://dc/reportserver доступны, отчёты открываются.

srsrp.log:

Microsoft.ConfigurationManagement.Srs.SrsServer. error = The system cannot find the file specified. SMS_SRS_REPORTING_POINT 01.01.1601 0:00:00
STATMSG: ID=7402 SEV=E LEV=M SOURCE=»SMS Server» COMP=»SMS_SRS_REPORTING_POINT» SYS=DC SITE=000 PID=2496 TID=2548 GMTDATE=Mon Apr 04 11:59:24.936 2011 ISTR0=»DC» ISTR1=»» ISTR2=»» ISTR3=»» ISTR4=»» ISTR5=»» ISTR6=»» ISTR7=»» ISTR8=»» ISTR9=»» NUMATTRS=0 SMS_SRS_REPORTING_POINT 01.01.1601 0:00:00
Failures reported during periodic health check by the SRS Server DC. Will retry check in 57 minutes SMS_SRS_REPORTING_POINT 01.01.1601 0:00:00

С системы сайта удаляем роль ConfigMgr Reporting Services point, устанавливаем её заново с параметрами по умолчанию и через ConfigMgr Service Manager перезапускаем SMS_SRS_REPORTING_POINT:

отчёт по последней загрузке и инвентаризации

Набросал вот простой отчёт по последней загрузке системы, авторизировавшемуся пользователю и инвентаризации.

SELECT DISTINCT
dbo.v_R_System.Name0 AS [PC name], dbo.v_GS_OPERATING_SYSTEM.Caption0 AS [Operation System],
dbo.v_GS_OPERATING_SYSTEM.CSDVersion0 AS [Service pack], dbo.v_GS_COMPUTER_SYSTEM.UserName0 AS [Last logon user],
dbo.v_GS_WORKSTATION_STATUS.LastHWScan AS [Last hardware inventory], dbo.v_GS_OPERATING_SYSTEM.LastBootUpTime0 AS [Last bootup time]
FROM         dbo.v_R_System INNER JOIN
dbo.v_GS_COMPUTER_SYSTEM ON dbo.v_R_System.ResourceID = dbo.v_GS_COMPUTER_SYSTEM.ResourceID INNER JOIN
dbo.v_GS_WORKSTATION_STATUS ON dbo.v_R_System.ResourceID = dbo.v_GS_WORKSTATION_STATUS.ResourceID INNER JOIN
dbo.v_GS_OPERATING_SYSTEM ON dbo.v_R_System.ResourceID = dbo.v_GS_OPERATING_SYSTEM.ResourceID

новые вебкасты

Desired Configuration Management, ч.2

Импортирование configurations pack, просмотр отчётов, создание коллекций на основе информации, полученной от Desired Configuration Management.

Отчёты

Установка Reporting Point, просмотр отчётов, создание dashboards и собственных отчётов.

Комментарии и пожелания приветствуются.