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 つを持つアカウントを使用します。
- ヘルプ デスク オペレーター
- 以下を含むカスタム ロール :
- アクセス許可 マネージド デバイス/クエリ
- Intune 内の管理対象デバイスを可視化し、そのアクセスを提供するアクセス許可 (組織/読み取り、管理対象デバイス/読み取りなど)
複数のデバイスに対してデバイス クエリを使用する
- Microsoft Intune管理センターで、[デバイス>デバイス クエリ] を選択します。
- サポートされているプロパティと演算子を使用して、クエリ ボックスにクエリを入力します。
- [実行] を選択してクエリを実行します。
- [ 結果] タブで結果を表示します。
- 複数のクエリが存在するときにクエリの一部または 1 つのクエリを実行するには、実行するクエリを強調表示して、[ 実行] を選択します。 強調表示されたクエリのみが実行されます。
左側のビューを展開すると、クエリを実行することができるすべての使用可能なプロパティが表示されます。 プロパティを選択してクエリに挿入します。 また、左側のペインとクエリ ウィンドウのサイズを変更して、レイアウトを調整することもできます。
Kusto 照会言語 (KQL) の詳細については、「Kusto 照会言語の詳細」を参照してください。
ヒント
Intune の Copilot を使用して、自然言語要求を使用してデバイス クエリの KQL クエリを生成します。 詳細については、「 デバイス クエリで Copilot を使用してクエリする」を参照してください。
クエリの結果とアクション
クエリを実行すると、[ 結果] タブに結果が表示されます。結果は、いくつかの方法で操作できます。
- 返されるアイテム数が 50 以下の場合、結果のすべての行を検索し、列ヘッダーを使用してフィルターを適用できます。
- [すべてのアイテムをグループに追加] を選択して、クエリの結果から直接 Microsoft Entra セキュリティ グループを作成します。 このアクションは、Microsoft Entra 条件付きアクセス ポリシーまたは Microsoft Intune ポリシーを使用して特定のデバイスをターゲットにするのに役立ちます。
- [ エクスポート] を選択して、結果を .csv ファイルに保存します。 すべての列をエクスポートすることも、選択した列のみをエクスポートすることもできます。 1 つのファイルに最大 50,000 件の結果をエクスポートできます。
サンプル クエリ
開始するために、このセクションではいくつかのサンプル クエリを提供します。 サンプル クエリにアクセスするには、[はじめに] ページの [クエリの例] セクションを展開し、クエリ ウィンドウに追加するクエリを選択します。 次のセクションは、サンプル クエリの一覧を示しています。
コア数別の上位プロセッサ
このクエリは、コア数で上位 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) でサポートされている演算子のサブセットのみをサポートします。 現在、次の演算子がサポートされています。
テーブル演算子
テーブル演算子を使用して、データ ストリームのフィルター処理、集計、変換を行うことができます。 次の演算子がサポートされています。
| テーブル演算子 | 説明 |
|---|---|
count |
そのレコード数を含む 1 つのレコードを持つテーブルを返します。 |
distinct |
入力テーブルから指定された列の異なる組み合わせを持つテーブルを生成します。 |
join |
2 つのテーブルの行を結合し、指定した列の一致する値に基づいて新しいテーブルを作成します。 次の結合タイプがサポートされています。 - innerunique (既定)- inner- leftouter- rightouter- fullouter- leftsemi- rightsemi- leftanti- rightanti結合文では、省略可能な on 句がサポートされています。 デバイス クエリ シナリオでは、通常、Device エンティティを含むテーブルを結合するときに on Device を使用します。
join の一般的な構文は次のとおりです: LeftTable | join [hints] (RightTable) on Conditions。重要: on Device.DeviceID を使用する参加はサポートされなくなりました。 現在 on Device.DeviceId を指定しているクエリは、on Device を使用するように切り替えるか、Device エンティティでの結合時に on 句を省略する必要があります。詳細については、 演算子の結合を参照してください。 |
order by |
入力テーブルの行を 1 つ以上の列で並べ替えます。 |
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' |
> |
Greater |
2 > 1, 'xyz' > 'XYZ' |
<= |
より小さいか等しい |
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 |
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 が true の場合のみ 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() |
値を、指定したビン サイズの日時の倍数に切り捨てます。 |
case() |
述語のリストを評価し、述語が満たされた最初の結果式を返します。 |
datetime_add() |
指定した日付部分に指定した金額を乗算し、指定した日時に追加した新しい日時を計算します。 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 AccountsApple Device StatesApple Update SettingsBatteryBios InfoBluetoothCellularCPUDevice StorageDisk DriveEncryptable VolumeLocal AI AgentLogical DriveMemory InfoNetwork AdapterOs VersionShared iPadSim InfoSystem EnclosureSystemInfoTimeTpmVideo ControllerWindows 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 エンティティ列が含まれます。
project、summarize、distinct などの演算子は、返される列を変更できます。
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は成功します。 - "ローカル AI エージェント" エンティティの NL2KQL アシスタンスは現在サポートされていません。
- クエリ