次の方法で共有


複数のデバイスのデバイス クエリ

注:

この機能は、Intune アドオンとして使用できます。 詳細については、「Intune Suite アドオン機能を使用する」を参照してください。

複数のデバイスに対するデバイス クエリを使用すると、Kusto 照会言語 (KQL) を使用してデバイスの収集されたインベントリ データ全体に対してクエリを実行することで、デバイスのフリート全体に関する包括的な分析情報を得ることができます。

開始する前に

  • 環境がすべての前提条件を満たしていることを確認 します

複数のデバイスのデバイス クエリの追加の前提条件:

デバイス プラットフォームの要件

複数のデバイスのデバイス クエリでは、次がサポートされます。

  • Windows
  • Android
    • 会社所有 Android Enterprise 専用デバイス (COSU)
    • 会社所有 Android Enterprise フル マネージド (COBO)
    • Android Enterprise の会社所有の仕事用プロファイル (COPE)
  • Apple
    • iOS/iPadOS
    • macOS

デバイス構成の要件

複数のデバイスのデバイス クエリでは、次のデバイスがサポートされています。

  • Intuneによって管理され、企業所有としてマークされている
  • Windows デバイスには、インベントリ データを収集するために 、プロパティ カタログ ポリシー が展開されている必要があります。
    iOS/iPadOS、Android、macOS の場合、データは自動的に収集され、個別のプロパティ カタログ ポリシーをデプロイする必要はありません。

ロールの要件

複数のデバイスに対してデバイス クエリを使用するには、次のロールの少なくとも 1 つを持つアカウントを使用します。

  • ヘルプ デスク オペレーター
  • 次を含むカスタム ロール:
    • アクセス許可 マネージド デバイス/クエリ
    • Intune内の管理対象デバイス (組織/読み取り、管理対象デバイス/読み取りなど) の可視性とアクセスを提供するアクセス許可

複数のデバイスに対してデバイス クエリを使用する

  1. Microsoft Intune管理センターで、[デバイス>デバイス クエリ] を選択します。
  2. サポートされているプロパティとサポートされている演算子を使用して、クエリ ボックスにクエリを入力します。
  3. [実行] を選択してクエリを実行します。
  4. [結果] タブ領域に 結果 が表示されます。
    • 複数のクエリがウィンドウ内にある場合にクエリの一部または 1 つのクエリを実行するには、実行するクエリを強調表示し、[ 実行] を選択します。 強調表示されたクエリのみが実行されます。

左側のビューを展開して、クエリ可能なすべてのプロパティを表示できます。 クエリに設定するものを選択します。 左側とクエリ ウィンドウの両方の端を選択してドラッグして、調整を行うことができます。

クエリを実行した後、[ エクスポート] を選択して結果を .CSV ファイルに保存します。 クエリ結果のすべての列、または選択した列のみをエクスポートするオプションがあります。 最大 50,000 件の結果をファイルにエクスポートできます。

Kusto 照会言語の詳細については、「Kusto 照会言語の詳細」を参照してください。

ヒント

Intuneで Copilot を使用して、自然言語要求を使用してデバイス クエリの KQL クエリを生成します。 詳細については、「 デバイス クエリで Copilot を使用してクエリを実行する」を参照してください。

サンプル クエリ

開始に役立ついくつかのサンプル クエリについては、このセクションで説明します。 サンプル クエリにアクセスするには、[はじめに] ページの下の [サンプル クエリ ] セクションを展開し、クエリ ウィンドウに追加するクエリを選択します。 次のセクションでは、サンプル クエリの一覧を示します。

コア数別の上位プロセッサ

このクエリでは、コア数別に上位 5 つの CPU が表示されます。

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 アーキテクチャ別のデバイスの概要を示します。

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

デバイスのメモリ情報

このクエリでは、物理メモリと仮想メモリを持つデバイスを GB 単位で一覧表示します。

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

OS バージョン別のデバイス数

このクエリは、OS バージョン別のデバイスの概要を提供します。

OsVersion| summarize DevicesCount = count() by OsVersion

デバイス Bios 情報

このクエリでは、BIOS の製造元に基づいてデバイスが一覧表示されます。

BiosInfo| where Manufacturer contains "Microsoft"

TPM が無効なデバイス

このクエリは、TPM が無効になっているデバイスの一覧を示します。

Tpm | where Enabled != true

サポートされる演算子

デバイス クエリでは、Kusto 照会言語 (KQL) でサポートされている演算子のサブセットのみがサポートされます。 現在、次の演算子がサポートされています。

テーブル演算子

テーブル演算子を使用して、データ ストリームのフィルター処理、集計、変換を行うことができます。 次の演算子がサポートされています。

Table 演算子 説明
count レコード数を含む 1 つのレコードを含むテーブルを返します。
distinct 入力テーブルから指定された列の個別の組み合わせを持つテーブルを生成します。
join 2 つのテーブルの行をマージし、指定された列の一致する値に基づいて新しいテーブルを形成します。 次の結合の種類がサポートされています。
- innerunique (既定値)
- inner
- leftouter
- rightouter
- fullouter
- leftsemi
- rightsemi
- leftanti
- rightanti

Join ステートメントでは、省略可能な on 句がサポートされます。 デバイス クエリシナリオでは、通常、Device エンティティを含むテーブルを結合するときにon Deviceを使用します。 joinの一般的な構文は、LeftTable | join [hints] (RightTable) on Conditionsです。

大事な:on Device.DeviceIDを使用する結合はサポートされなくなりました。 現在on Device.DeviceIdを指定しているクエリは、on Deviceを使用してに切り替える必要があります。または、Device エンティティで結合するときに、on 句を省略する必要があります。

詳細については、「 Join 演算子」を参照してください。
order by 入力テーブルの行を 1 つ以上の列で並べ替えます。
project 含める列、名前の変更、または削除を選択し、新しい計算列を挿入します。
take 指定した行数までを返します。
top 指定した列で並べ替えられた最初の N 個のレコードを返します。
where 述語を満たす行のサブセットに対してテーブルをフィルター処理します。
summarize 入力テーブルの内容を集計するテーブルを生成します。

注:

Device はエンティティ型であり、スカラー値 ( distinctsummarizeorder byなど) を必要とする演算子では直接使用できません。 これらの演算子には、デバイスの特定のスカラー プロパティ ( Device.SerialNumberDevice.OSVersionなど) を使用します。

スカラー演算子

スカラー演算子を使用して、個々の値に対する操作を実行できます。 次の演算子がサポートされています。

演算子 説明
== 等しい 1 == 1, 'aBc' == 'AbC'
!= 等しくない 1 != 2, 'abc' != 'abcd'
< より小さい 1 < 2, 'abc' < 'DEF'
> Greater 2 > 1, 'xyz' > 'XYZ'
<= Less or Equal 1 <= 2, 'abc' <= 'abc'
>= 大きいまたは等しい 2 >= 1, 'abc' >= 'ABC'
+ 追加する 2 + 1, now() + 1d
- 減算 2 - 1, now() - 1h
* 乗算 2 * 2
/ 除算 2 / 1
% モジュロ 2 % 1
like LHS に RHS の一致が含まれています 'abc' like '%B%'
contains RHS は、LHS のサブシーケンスとして発生します 'abc' contains 'b'
!contains LHS で RHS が発生しない '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 TRUE の場合と、RHS と LHS が true の場合のみ (1 == 1) and (2 == 2)
or RHS または LHS が true の場合にのみ True (1 == 1) or (1 == 2)

集計関数

集計関数を使用して、データを集計できます。 次の関数がサポートされています。

関数 説明
avg() グループ全体の値の平均を返します
count() 集計グループごとのレコード数を返します
countif() 述語が true と評価される行の数を返します
dcount() グループ内の個別の値の数を返します
max() グループ全体の最大値を返します
maxif() 述語が true と評価されるグループ全体の最大値を返します
min() グループ全体の最小値を返します
minif() 述語が true と評価されるグループ全体の最小値を返します
percentile() Expr によって定義された母集団の指定された最も近いランクパーセンタイルの推定値を返します
sum() グループ全体の値の合計を返します
sumif() 述語が true と評価される Expr の合計を返します

スカラー関数

スカラー関数を使用して、個々の値に対する操作を実行できます。 次の関数がサポートされています。

関数 説明
ago() 現在の UTC クロック時刻から指定されたタイムスパンを減算します。
bin() 値を、指定されたビン サイズの複数の datetime に丸めます。
case() 述語の一覧を評価し、述語が満たされている最初の結果式を返します。
datetime_add() 指定した datepart から指定した datetime に指定した datetime を乗算し、指定した datetime に加算した値を乗算して、新しい datetime を計算します。 amount パラメーターの負の値はサポートされていません。
datetime_diff() 2 つの datetime 値の差を計算します。
iif() 述語が true (2 番目) または false (3 番目) に評価されたかどうかに応じて、最初の引数を評価し、2 番目または 3 番目の引数の値を返します。
indexof() 入力文字列内の指定した文字列の最初の出現の 0 から始まるインデックスを報告します。
isnotnull() その唯一の引数を評価し、引数が null 以外の値に評価されるかどうかを示すブール値を返します。
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
  • Logical Drive
  • Memory Info
  • Network Adapter
  • Os Version
  • Shared iPad
  • Sim Info
  • System Enclosure
  • SystemInfo
  • Time
  • Tpm
  • Video Controller
  • Windows Qfe

デバイス エンティティ

複数のデバイスのデバイス クエリでは、リンクされたエンティティがサポートされています。 Device エンティティは、サポートされている他のすべてのエンティティと共に使用できます。 デバイス エンティティでは、次のプロパティがサポートされています。

プロパティ 説明
DeviceId 文字列 デバイス登録の一部としてIntuneによって生成される一意の ID。
EntraDeviceId 文字列 登録または参加の一部としてMicrosoft Entraによって生成Microsoft Entra一意の ID。
ManagementName 文字列 Intune管理センターでのみ使用される、簡単に認識できるデバイス名。 この名前を変更しても、デバイス名やポータル サイト内の名前は変更されません。
DeviceName 文字列 デバイスの名前
SerialNumber 文字列 デバイスのシリアル番号
Manufacturer 文字列 デバイスのメーカー
Model 文字列 デバイスのモデル
OSDescription 文字列 オペレーティング システム エディションの完全な説明
OSVersion 文字列 デバイス上のオペレーティング システムのバージョン
EnrollmentProfileName 文字列 デバイスに割り当てられた登録プロファイルの名前。 既定値は、デバイスに割り当てられた登録プロファイルがないことを示す空の文字列です。
EnrolledDateTime Datetime デバイスが Intune に登録された日時。
CertExpirationDateTime Datetime デバイス管理証明書の有効期限を報告します。
EnrolledByUserId 文字列 デバイスを登録したユーザーの一意識別子
PrimaryUserId 文字列 デバイスに関連付けられているユーザーの一意の識別子。
LastLoggedOnUserId 文字列 デバイスに最後にログオンしたユーザーの一意識別子。
InCompliancePeriodUntilDateTime Datetime デバイス コンプライアンスの猶予期間が経過する DateTime
DeviceCategoryId 文字列 デバイス カテゴリの表示名。 既定値は空の文字列です。
LastSeenDateTime 文字列 デバイスが最後に Intune に接続された日時。
Ownership 文字列 デバイスの所有権。

Device エンティティを使用すると、デバイス テーブルに明示的に結合する必要なく、結果の各行に関連付けられているデバイス情報を参照できます。

既定では、クエリ結果には、各行のデバイス コンテキストを提供する Device エンティティ列が含まれます。 projectsummarizedistinctなどの演算子は、返される列を変更できます。

Device は、結果の行に関連付けられているデバイスを表し、エンティティ型の列として直接参照できます。 クエリ結果に表示される場合、デバイス名などのフレンドリ識別子を使用して Device エンティティが表示され、デバイスの識別が容易になります。

Device.[Property]を使用して、クエリでDevice エンティティのプロパティを参照できます。

次のクエリは、特定のシリアル番号を持つデバイスのすべての DiskDrive 情報を返します。

DiskDrive
| where Device.SerialNumber == "123"

次のクエリは、DiskDrive エンティティから Device エンティティと Manufacturer プロパティを投影します。


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
    
  • $leftパラメーターと$right パラメーターで join 演算子を使用するクエリでは、エディターに赤い下線が表示される場合があります。 ただし、クエリは引き続き実行でき、期待どおりに結果を返すことができます。

  • 1 つのクエリには、最大 3 つの join 演算子を含めることができます。 結合数が多いクエリは失敗します。

  • クエリには最大 50,000 個のレコードが返されます。

  • 1 分あたり最大 10 個のクエリを送信できます。 同じ分以内に追加のクエリが失敗します。

  • 1 か月あたり最大 1,000 個のクエリを送信できます。

  • datetime_add() 関数の amount パラメーターの負の値はサポートされていません。

  • 明示的に名前を付けずに集計関数によって生成された変数を参照すると、クエリが失敗する可能性があります。 変数に明示的に名前を付けて、クエリを成功させることができます。 例:

    • クエリ Device | summarize dcount(DeviceId) | order by dcount_DeviceId が失敗します。
    • クエリ Device | summarize DCountDeviceIdRename = dcount(DeviceId) | order by DCountDeviceIdRename は成功します。