Запрос устройства для нескольких устройств

Используйте запрос устройств для нескольких устройств в Microsoft Intune, чтобы выполнять запросы на языке запросов языка запросов Kusto (KQL) по данным инвентаризации устройств и выявлять тенденции в управляемом парке. В этой статье описаны предварительные требования, создание и выполнение запросов в Центре администрирования Intune, работа с результатами, а также поддерживаемые операторы, функции и свойства.

Подготовка к работе

Дополнительные необходимые условия для запроса нескольких устройств:

Требования к платформе устройства

Запрос устройства для нескольких устройств поддерживает:

  • Windows
  • Android
    • Android Enterprise — выделенные корпоративные устройства (COSU)
    • Android Enterprise — полностью управляемые корпоративные устройства (COBO)
    • Android Enterprise — корпоративный рабочий профиль (COPE)
  • Apple
    • iOS/iPadOS
    • macOS

Требования к конфигурации устройств

Запрос устройства для нескольких устройств поддерживает следующие устройства:

  • Управляется Intune и помечен как корпоративный.
  • Для сбора данных инвентаризации на устройствах с Windows должна быть развернута политика каталога свойств .
    Для iOS/iPadOS, Android и macOS данные собираются автоматически, и не нужно развертывать отдельную политику каталога свойств.

Требования к ролям

Чтобы использовать запрос устройств для нескольких устройств, используйте учетную запись хотя бы с одной из следующих ролей:

Использовать запрос для нескольких устройств

  1. В Центре администрирования Microsoft Intune выберите"Запросы устройств>".
  2. Введите запрос в поле запроса, используя поддерживаемые свойства и операторы.
  3. Выберите Выполнить для выполнения запроса.
  4. Просмотр результатов на вкладке "Результаты ".
    • Чтобы выполнить часть запроса или один запрос, если их несколько, выделите нужный запрос и нажмите кнопку "Выполнить". Выполняется только выделенный запрос.

Можно развернуть представление в левой части, чтобы увидеть все доступные свойства, которые можно запросить. Выберите свойство, чтобы вставить его в запрос. Вы также можете изменить размер левой области и окна запроса, чтобы настроить макет.

Дополнительные сведения о языке запросов Kusto (KQL) см. в статье Дополнительные сведения о языке запросов Kusto.

Совет

Используйте Copilot в Intune для создания запросов KQL для запросов устройств с помощью запросов на естественном языке. Дополнительные сведения см. в статье "Запрос с помощью Copilot в запросе устройства".

Результаты запроса и действия

После выполнения запроса результаты появятся на вкладке "Результаты ". С результатами можно взаимодействовать несколькими способами:

  • Если запрос возвращает 50 элементов или меньше, можно выполнить поиск во всех строках результатов и применить фильтры по заголовкам столбцов.
  • Создавайте группы безопасности Microsoft Entra непосредственно из результатов запроса, выбрав "Добавить все элементы в группу". Это действие поможет вам настроить определенные устройства с помощью политик условного доступа Microsoft Entra или политик Microsoft Intune.
  • Выберите "Экспорт", чтобы сохранить результаты в .csv файле. Вы можете экспортировать все столбцы или только выбранные. В файл можно экспортировать до 50 000 результатов.

Примеры запросов

Чтобы помочь вам приступить к работе, в этом разделе приводятся примеры запросов. Чтобы получить доступ к примерам запросов, разверните раздел "Примеры запросов " на странице "Начало работы " и выберите запрос, который требуется добавить в окно запроса. В следующем разделе приведен список примеров запросов.

Лучшие процессоры по количеству ядер

Этот запрос показывает пять основных ЦП по количеству ядер.

Cpu
| project Device, ProcessorId, Model, Architecture, CpuStatus, ProcessorType, CoreCount, LogicalProcessorCount, Manufacturer, AddressWidth
| order by CoreCount asc
| take 5

Устройства с незащищенными дисками

В этом запросе перечислены устройства с незашифрованными дисками.

EncryptableVolume
| where ProtectionStatus != "PROTECTED"
| join LogicalDrive on Device

Устройства ARM64

В этом запросе перечислены все устройства с процессором ARM64.

Cpu
| where Architecture == "ARM64"

Количество устройств в зависимости от архитектуры процессора

Этот запрос предоставляет сводку устройств по архитектуре ЦП.

Cpu
| summarize DeviceCount = count() by Architecture

Лучшие устройства по емкости батареи

В этом запросе перечислены 10 лучших устройств по полной емкости батареи.

Battery
| project Device, InstanceName, Manufacturer, Model, SerialNumber, CycleCount,
          DesignedCapacity,
          FullChargedCapacity,
          FullChargedCapacityPercent = (FullChargedCapacity * 100) / DesignedCapacity
| top 10 by FullChargedCapacityPercent asc

Сведения о памяти устройств

В этом запросе перечислены устройства с физической и виртуальной памятью в ГБ.

MemoryInfo
| project Device,
          PhysicalMemoryGB = PhysicalMemoryTotalBytes/(1000*1000*1000),
          VirtualMemoryGB = VirtualMemoryTotalBytes/(1000*1000*1000)
| order by PhysicalMemoryGB asc

Количество устройств по версиям ОС

Этот запрос предоставляет сводку устройств по версиям ОС.

OsVersion| summarize DevicesCount = count() by OsVersion

Сведения BIOS устройства

В этом запросе устройства указаны в зависимости от производителя BIOS.

BiosInfo| where Manufacturer contains "Microsoft"

Устройства, отключенные TPM

В этом запросе перечислены устройства, на которых отключен доверенный платформенный модуль.

Tpm | where Enabled != true

Поддерживаемые операторы

Запрос устройства поддерживает только подмножество операторов, поддерживаемых в языке запросов Kusto (KQL). В настоящее время поддерживаются следующие операторы:

Операторы таблиц

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

Оператор таблицы Описание
count Возвращает таблицу с одной записью, содержащей число записей.
distinct Создает таблицу с определенными комбинациями столбцов, предоставленных входной таблицей.
join Объединение строк из двух таблиц для создания новой таблицы на основе совпадающих значений в указанных столбцах. Поддерживаются следующие типы соединений:
- innerunique (Значение по умолчанию.)
- inner
- leftouter
- rightouter
- fullouter
- leftsemi
- rightsemi
- leftanti
- rightanti

Операторы соединения поддерживают необязательное on предложение. В сценариях запросов к устройствам обычно используются on Device при соединении таблиц, содержащих Device сущность. Общий синтаксис for join : LeftTable | join [hints] (RightTable) on Conditions.

Важно! Такие соединения on Device.DeviceID больше не поддерживаются. Запросы, которые в настоящее время указывают on Device.DeviceId , должны переключиться на использование on Device, или опустить on предложение при присоединении к объекту Device .

Дополнительные сведения см. в разделе Оператор присоединения.
order by Сортирует строки входной таблицы по одному или нескольким столбцам.
project Выбор столбцов для включения, переименования или удаления и вставка новых вычисляемых столбцов.
take Возвращает до указанного количества строк.
top Возвращает первые N записей, отсортированных по указанным столбцам.
where Фильтрует таблицу по подмножеству строк, удовлетворяющих предикату.
summarize Создает таблицу, в которой агрегатируется содержимое входной таблицы.

Примечание.

Device является типом сущности и не может использоваться непосредственно в операторах, требующих скалярных значений (таких как distinct, , summarize, и order by). Для этих операторов используйте определенное скалярное свойство устройства (например, Device.SerialNumber или Device.OSVersion).

Скалярные операторы

Скалярные операторы можно использовать для выполнения операций с отдельными значениями. Поддерживаются следующие операторы:

Операторы Описание Пример
== Равно 1 == 1, 'aBc' == 'AbC'
!= Не равно 1 != 2, 'abc' != 'abcd'
< Меньше 1 < 2, 'abc' < 'DEF'
> Больше 2 > 1, 'xyz' > 'XYZ'
<= Меньше или равно 1 <= 2, 'abc' <= 'abc'
>= Больше или равно 2 >= 1, 'abc' >= 'ABC'
+ Добавить 2 + 1, now() + 1d
- Subtract 2 - 1, now() - 1h
* Multiply 2 * 2
/ Divide 2 / 1
% Модуль 2 % 1
like LHS содержит совпадение для RHS 'abc' like '%B%'
contains RHS возникает как последствие LHS 'abc' contains 'b'
!contains RHS не возникает при LHS 'team' !contains 'i'
startswith RHS является начальным последствием LHS 'team' startswith 'tea'
!startswith RHS не является начальным последствием LHS 'abc' !startswith 'bc'
endswith RHS является заключительным последствием LHS 'abc' endswith 'bc'
!endswith RHS не является завершающим последствием LHS 'abc' !endswith 'a'
and Истинно тогда и только тогда, когда RHS и LHS истинны (1 == 1) and (2 == 2)
or Истинно тогда и только тогда, когда RHS или LHS истинны (1 == 1) or (1 == 2)

Функции агрегирования

Функции агрегирования можно использовать для суммирования данных. Поддерживаются следующие функции:

Функция Описание
avg() Возвращает среднее арифметическое значений по группе.
count() Возвращает количество записей в группе суммирования.
countif() Возвращает количество строк, для которых предикат принимает значение ИСТИНА.
dcount() Возвращает количество уникальных значений в группе.
max() Возвращает максимальное значение по всей группе.
maxif() Возвращает максимальное значение в группе, для которой предикат принимает значение ИСТИНА.
min() Возвращает минимальное значение по всей группе.
minif() Возвращает минимальное значение в группе, для которого предикат принимает значение ИСТИНА.
percentile() Возвращает оценку указанного процентиля ближайшего ранга генеральной совокупности, определенной выражением
sum() Возвращает сумму значений в группе.
sumif() Возвращает сумму выражения, для которой предикат принимает значение ИСТИНА.

Скалярные функции

Скалярные функции можно использовать для выполнения операций с отдельными значениями. Поддерживаются следующие функции:

Функция Описание
ago() Вычитает указанный временной интервал из текущего времени в формате UTC.
bin() Округляет значения в меньшую сторону до числа, кратного дате и времени заданному размеру ячейки.
case() Вычисляет список предикатов и возвращает первое выражение результата, предикат которого выполнен.
datetime_add() Вычисляет новую функцию datetime из указанного значения datepart, умноженное на указанную величину, добавленную к указанному значению datetime. Отрицательные значения для параметра amount не поддерживаются.
datetime_diff() Вычисляет разницу между двумя значениями даты и времени.
iif() Вычисляет первый аргумент и возвращает значение второго или третьего аргумента в зависимости от того, дал ли предикат значение Истина (второй) или Ложь (третий).
indexof() Возвращает отсчитываемый от нуля индекс для первого вхождения указанной строки во входной строке.
isnotnull() Вычисляет свой единственный аргумент и возвращает логическое значение, указывающее, принимает ли аргумент ненулевое значение.
isnull() Вычисляет свой единственный аргумент и возвращает логическое значение, указывающее, принимает ли аргумент значение Null.
now() Возвращает текущее время в формате UTC.
strcat() Объединяет от 1 до 64 аргументов.
strlen() Возвращает длину входной строки в выражениях.
substring() Извлекает подстроку из исходной строки, начиная с некоторого индекса до конца строки.
tostring() Преобразует ввод данных в строковое представление.

Поддерживаемые свойства

Запрос устройства поддерживает следующие сущности. Подробнее о том, какие свойства поддерживаются для каждой сущности, см. Схема платформы данных Intune.

  • Apple Auto Setup Admin Accounts
  • Apple Device States
  • Apple Update Settings
  • Battery
  • Bios Info
  • Bluetooth
  • Cellular
  • CPU
  • Device Storage
  • Disk Drive
  • Encryptable Volume
  • Local AI Agent
  • Logical Drive
  • Memory Info
  • Network Adapter
  • Os Version
  • Shared iPad
  • Sim Info
  • System Enclosure
  • SystemInfo
  • Time
  • Tpm
  • Video Controller
  • Windows Qfe

Сущность устройства

Запрос устройства для нескольких устройств поддерживает связанную сущность. Сущность Device можно использовать со всеми другими поддерживаемыми сущностями. Сущность device поддерживает следующие свойства:

Свойство Тип Описание
DeviceId String Уникальный идентификатор, созданный Intune в процессе регистрации устройства.
EntraDeviceId String Уникальный идентификатор, созданный Microsoft Entra в рамках регистрации или присоединения к Microsoft Entra.
ManagementName String Легко различимое имя устройства, используемое только в Центре администрирования Intune. При этом не изменяется имя устройства или имя на корпоративном портале.
DeviceName String Название устройства
SerialNumber String Серийный номер устройства
Manufacturer String Производитель устройства
Model String Модель устройства
OSDescription String Полное описание выпуска операционной системы
OSVersion String Версия операционной системы на устройстве.
EnrollmentProfileName String Имя профиля регистрации, назначенного устройству. Значение по умолчанию — это пустая строка, указывающая, что устройству не назначен профиль регистрации.
EnrolledDateTime Дата и время Дата и время регистрации устройства в Intune.
CertExpirationDateTime Дата и время Сообщает дату окончания срока действия сертификата управления устройствами.
EnrolledByUserId String Уникальный идентификатор пользователя, зарегистрировавшего устройство
PrimaryUserId String Уникальный идентификатор пользователя, связанный с устройством.
LastLoggedOnUserId String Уникальный идентификатор пользователя, который в последний раз входил в устройство.
InCompliancePeriodUntilDateTime Дата и время Дата и время истечения льготного периода соответствия устройства требованиям
DeviceCategoryId String Отображаемое имя категории устройств. Значение по умолчанию является пустой строкой.
LastSeenDateTime String Дата и время последнего подключения устройства к Intune.
Ownership String Владение устройством.

Сущность Device позволяет ссылаться на сведения об устройстве, связанные с каждой результирующей строкой, без необходимости явного соединения с таблицей устройств.

По умолчанию результаты запроса включают столбец сущности Device , который предоставляет контекст устройства для каждой строки. Такие операторы, как project, summarizeмогут distinct изменить тип возвращаемых столбцов.

Device Представляет устройство, связанное с результирующей строкой, и на него можно ссылаться непосредственно как на столбец типа объекта. При отображении Device в результатах запроса сущность отображается с использованием понятного идентификатора, например имени устройства, чтобы облегчить идентификацию устройств.

Вы можете ссылаться на свойства Device объекта в запросах с помощью Device.[Property].

Следующий запрос возвращает все DiskDrive сведения об устройствах с определенным серийным номером:

DiskDrive
| where Device.SerialNumber == "123"

Следующий запрос проецирует сущность и свойство DeviceManufacturer сущности DiskDrive :


DiskDrive
| project Device, Manufacturer

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


MemoryInfo
| order by Device.DeviceName

Аналогичным образом, чтобы отфильтровать по имени устройства, укажите свойство DeviceName напрямую:


Cpu
| where Device.DeviceName == "Desktop123"

Известные ограничения

  • При использовании столбцов типа сущностей, например Device в функциях агрегирования, в редакторе может отображаться красная линия подчеркивания, поскольку для функций агрегирования требуются скалярные значения. Чтобы избежать этого, ссылайтесь на конкретное скалярное свойство объекта. Например, вы можете:

    Cpu
    | summarize max(CpuUsage) by Device.Manufacturer
    
  • Запросы, использующие join оператор и $left$right и параметры, могут подчеркиваться красным цветом в редакторе. Однако запрос по-прежнему может выполняться и возвращать результаты, как и ожидалось.

  • Один запрос может содержать не более трех join операторов. Запросы с большим количеством соединений завершаются сбоем.

  • Для запроса возвращается не более ~50 000 записей.

  • В минуту можно отправлять не более 10 запросов. Дополнительные запросы в течение той же минуты завершаются сбоем.

  • В месяц можно отправлять не более 1000 запросов.

  • Отрицательные значения параметра amountdatetime_add() функции не поддерживаются.

  • Ссылка на переменную, созданную функцией агрегирования, без явного ее имени, может привести к сбою запроса. Явное имя переменной позволяет успешно выполнить запрос. Например, вы можете:

    • Сбой запроса Device | summarize dcount(DeviceId) | order by dcount_DeviceId .
    • Запрос Device | summarize DCountDeviceIdRename = dcount(DeviceId) | order by DCountDeviceIdRename обработан успешно.
    • Поддержка NL2KQL для сущности "Локальный агент ИИ" в настоящее время не поддерживается.