Рубрика:
Администрирование /
Инструменты
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
СЕРГЕЙ БОЛДИН, системный администратор в энергетической компании, bsergey2@gmail
Служебная программа CMPivot
Configuration Manager 2016 v1810 позволяет составить запрос, который отправится на все подключенные машины выбранной группы, и сразу получить результат, а также отфильтровать, сгруппировать и расширить/уточнить возвращенные данные
В Configuration Manager одной из сильных сторон является отчетная система, которая выводит информацию относительно последнего опроса клиентов. По умолчанию это происходит еженедельно.
Начиная с версии 1806 в SCCM появилась встроенная программа CMPivot, которая имеет доступ к состоянию устройств в режиме реального времени. С ее помощью системный администратор может составить запрос, который отправится на все подключенные машины выбранной группы и сразу получить результат, а также отфильтровать, сгруппировать и расширить/уточнить возвращенные данные. Разберемся, как написать запрос и получить соответствующую информацию.
Принцип работы CMPivot
CMPivot соединяется с SCCM-клиентами с применением «быстрого канала» [1], который связывает сервер с клиентом, а также используется для уведомления клиентов, получения данных об их состоянии, защиты с помощью Endpoint Protection.
Если клиент находится в активном состоянии, то он сразу отвечает на запрос. С офлайновых клиентов CMPivot может получить данные в течение одного часа при условии, что программа не закроется, а компьютеры станут доступными и клиенты получат статус Active [2]. Все полученные результаты будут временно храниться в базе данных.
Места хранения данных
С внедрением CMPivot в SCCM появилось два новых представления [3] – это vSMS_CMPivotStatus и vSMS_CMPivotTask. Рассмотрим их назначение.
Первое представление – vSMS_CMPivotStatus – сообщает о состоянии заданий, запущенных из CMPivot, а именно версию скрипта, с какого устройства и на скольких других машинах был запущен скрипт, количество недоступных клиентов. Информация для этого представления основана на трех таблицах (ClientAction, CMPivotResult, System_DISC) и двух представлениях (vSMS_ClientOperationStatus, vSMS_Scripts).
Второе представление – vSMS_CMPivotTask – имеет больше взаимосвязей, а именно девять таблиц (ClientActionSummary, ClientOperationResourceTarget, ClientOperationTarget, CMPivotResult, CollectionMembers, FnConvertBase64StringtoBinary, fnGetSiteNumber, fnlsCas, Scripts) и одно представление (vSMS_ClientOperationStatus), что в результате дает больше сводной информации.
Работа с CMPivot
Интерфейс программы CMPivot разделен на три части. Слева расположена панель с объектами, посередине сверху – поле для написания запросов, а под ней – поле для отображения результатов.
Для работы с CMPivot должны быть права администратора:
- SMS_Scripts – Read = Yes
- Collections – Run Script = Yes
Чтобы запустить CMPivot, нужно зайти в Asset and Compliance → Overview → Device Collections, на коллекции компьютеров нажать правой кнопкой мыши и выбрать пункт Start CMPivot.
CMPivot использует подмножество модели потока данных Azure Log Analytics, запросы очень похожи на запросы языка SQL. Совокупность клиентских сущностей и операторов разделяется «|», представляя поток табличных данных слева направо.
Каждый следующий оператор получает набор табличных данных от предыдущего, дополняет новыми наборами из тела оператора и передает дальше. Вся конструкция выглядит так:
сущность | оператор1 | оператор2 | ...
Пример 1. Выведем список компьютеров с операционной системой Windows 10 (см. рис. 1):
OS | where (version like '10.%')
Рисунок 1. Вывод списка машин с ОС Windows 10
Пример 2. Отобразим информацию с лог-файла ccmlog, где все строки начинаются со слова Execution или Execute. Запрос будет выглядеть так:
Ccmlog('Scripts') | where (LogText like 'Execut%')
По завершении работы некоторых запросов полученную информацию можно использовать дальше [4], открыв контекстное меню: использовать поиск другой информации, запустить удаленный доступ, открыть Resource Explorer, выполнить скрипт PowerShell.
Для примера выведем список компьютеров с определенным сервисом (см. рис. 2):
Service | where name like 'WinRM'
Рисунок 2. Дополнительные действия запроса
Следующий пример позволяет вывести версию файла [5]. Такие действия могут быть полезны для поиска устройств, до которых обновление еще не дошло или не применилось. Запрос будет выглядеть следующим образом:
File('%windir%\\system32\\cmd.exe') | where (version > '8%')
В CMPivot результаты работы запроса можно визуализировать с помощью Azure Log Analytics [6], будут доступны гистограмма, столбчатая диаграмма, круговая диаграмма и временная диаграмма.
Пример 3. Отобразим последние использованные приложения с помощью гистограммы
CCMRecentlyUsedApplications
| summarize dcount(Device) by ProductName
| top 10 by dcount_
| render barchart
Пример 4. Выведем все версии ОС Windows на круговой диаграмме (см. рис. 3).
OperatingSystem
| summarize count() by Caption
| render piechart
Рисунок 3. Результат на круговой диаграмме
Применять CMPivot можно и для получения информации о комплектующих компьютера, обращаясь к любому классу инвентаризации оборудования. CMPivot отображает как результаты последнего сканирования оборудования, вытянутые из базы данных, так и результаты с онлайн-клиентов. Если эти данные выводить графически, то столбики на графике будут иметь разные оттенки: темно-синий – данные получены в реальном времени, голубой – из базы данных.
Пример 5. Выведем информацию о логических дисках, свободном месте на них (см. рис. 4).
LogicalDisk
| summarize sum(FreeSpace) by Device
| order by sum_ desc
| render columnchart
Рисунок 4. Данные о логических дисках на графике
Для получения информации об инвентаризации нужно учитывать несколько ограничений:
- не поддерживаются некоторые сущности (свойства массива, например, IP-адрес, Real32/Real64, свойства встроенного объекта);
- имена сущностей должны начинаться с символа;
- нельзя перезаписать встроенные сущности путем создания новых с тем же именем.
Troubleshooting
Как обычно, для устранения каких-либо проблем помогают лог-файлы.
Работая с CMPivot, необходимо смотреть идентификатор запроса в правом нижнем углу программы (см. рис. 1) и искать соответствия в лог-файлах, которые располагаются как на сервере (Smsprov.log, bgbserver.log, Statesys.log), так и на пользовательской машине (CcmNotificationAgent.log, Scripts.log, StateMessage.log).
Достоинства: получение данных в реальном времени, проста в использовании, дружелюбный интерфейс.
Недостатки: трата времени на поиск информации об объектах и их тестирование.
С помощью не очень сложных конструкций запроса в программе CMPivot можно выводить различную необходимую информацию об операционной системе и железе, сервисах и файлах, пакетах и приложениях как в виде таблицы, так и с помощью графиков. Очень не хватало такой программы в предыдущих версиях Configuration Manager.
- Описание быстрого канала – https://www.anoopcnair.com/video-guide-to-troubleshoot-sccm-cb-fast-channel-push-notification-issues/.
- Принцип работы CMPivot – https://docs.microsoft.com/ru-ru/sccm/core/servers/manage/cmpivot, https://www.anoopcnair.com/sccm-cmpivot-guide/.
- Описание новых таблиц и представлений – http://www.scconfigmgr.com/2018/08/06/cmpivot-in-configmgr-1806-part-3-cmpivot-and-sql-reports.
- Дополнительные действия – https://thesleepyadmins.com/2018/09/23/using-sccm-cmpivot/.
- Вывод версии файла – https://thesleepyadmins.com/2018/09/23/using-sccm-cmpivot/.
- Визуализация – https://docs.loganalytics.io/docs/Language-Reference, https://www.niallbrady.com/2018/09/16/system-center-configuration-manager-technical-preview-1809-is-out/.
- Примеры запросов – https://www.systemcenterdudes.com/sccm-cmpivot-query/.
Ключевые слова: программа, CMPivot, SCCM, запрос, таблица, представление, диаграмма, компьютер, машина, опрос, клиент.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|