Partager via


Requête d’appareil pour plusieurs appareils

Remarque

Cette fonctionnalité est disponible en tant que module complémentaire Intune. Pour plus d’informations, consultez Utiliser les fonctionnalités du module complémentaire Intune Suite.

La requête d’appareil pour plusieurs appareils vous permet d’obtenir des insights complets sur l’ensemble de votre flotte d’appareils à l’aide de Langage de requête Kusto (KQL) pour interroger les données d’inventaire collectées pour vos appareils.

Avant de commencer

Prérequis supplémentaires pour la requête d’appareil pour plusieurs appareils :

Configuration requise pour la plateforme de l’appareil

La requête d’appareil pour plusieurs appareils prend en charge :

  • Windows
  • Android
    • Appareils Android Entreprise dédiés appartenant à l’entreprise (COSU)
    • Appareils Android Entreprise complètement gérés appartenant à l’entreprise (COBO)
    • Profil professionnel Android Enterprise appartenant à l’entreprise (COPE)
  • Apple
    • iOS/iPadOS
    • macOS

Configuration requise de l’appareil

La requête d’appareil pour plusieurs appareils prend en charge les appareils suivants :

  • Géré par Intune et marqué comme appartenant à l’entreprise
  • Les appareils Windows doivent avoir une stratégie de catalogue de propriétés déployée sur eux pour collecter des données d’inventaire.
    Pour iOS/iPadOS, Android et macOS, les données sont collectées automatiquement et une stratégie de catalogue de propriétés distinctes n’a pas besoin d’être déployée.

Conditions requises pour les rôles

Pour utiliser la requête d’appareil pour plusieurs appareils, utilisez un compte avec au moins l’un des rôles suivants :

  • Opérateur du support technique
  • Rôle personnalisé qui inclut :
    • L’autorisation Appareils gérés/Requête
    • Autorisations qui fournissent une visibilité et un accès aux appareils gérés dans Intune (par exemple, Organisation/Lecture, Appareils gérés/Lecture)

Utiliser la requête d’appareil pour plusieurs appareils

  1. Dans le centre d’administration Microsoft Intune, sélectionnez Appareils>Requête d’appareil.
  2. Entrez une requête dans la zone de requête à l’aide des propriétés prises en charge et des opérateurs pris en charge.
  3. Sélectionnez Exécuter pour exécuter la requête.
  4. Les résultats sont affichés dans la zone d’onglet Résultats .
    • Si vous souhaitez exécuter uniquement une partie de la requête, ou si vous avez plusieurs requêtes dans la fenêtre de requête et que vous ne souhaitez en exécuter qu’une seule, vous pouvez mettre en surbrillance la requête que vous souhaitez exécuter et sélectionner Exécuter. Seule cette requête est exécutée.

Vous pouvez développer la vue sur le côté gauche pour voir toutes les propriétés qui peuvent être interrogées. Sélectionnez celui à remplir dans votre requête. Vous pouvez sélectionner et faire glisser les bords du côté gauche et de la fenêtre de requête pour effectuer des ajustements.

Après avoir exécuté une requête, sélectionnez Exporter pour enregistrer les résultats dans un fichier .CSV. Vous avez la possibilité d’exporter toutes les colonnes du résultat de la requête ou uniquement les colonnes que vous sélectionnez. Vous pouvez exporter jusqu’à 50 000 résultats dans un fichier.

Pour plus d’informations sur Langage de requête Kusto, consultez En savoir plus sur Langage de requête Kusto.

Conseil

Utilisez Copilot dans Intune pour générer des requêtes KQL pour les requêtes d’appareil à l’aide de requêtes en langage naturel. Pour plus d’informations, consultez Interroger avec Copilot dans la requête d’appareil.

Exemples de requêtes

Pour vous aider à démarrer, certains exemples de requêtes sont fournis dans cette section. Pour accéder aux exemples de requêtes, développez la section Exemples de requêtes sous la page Prise en main, puis sélectionnez celle que vous souhaitez ajouter à la fenêtre de requête. La section suivante présente la liste des exemples de requêtes.

Principaux processeurs par nombre de cœurs

Cette requête répertorie les cinq principaux processeurs triés par nombre de cœurs.

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

Appareils avec disques non protégés

Cette requête répertorie les appareils avec des disques non chiffrés.

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

Appareils Arm64

Cette requête répertorie tous les appareils dotés d’un processeur ARM64.

Cpu | where Architecture == "ARM64"

Nombre d’appareils par architecture de processeur

Cette requête fournit un résumé des appareils par architecture du processeur.

Cpu| summarize DeviceCount=count() by Architecture

Principaux appareils par capacité de batterie

Cette requête répertorie les 10 premiers appareils par capacité de batterie entièrement chargée.

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

Informations sur la mémoire des appareils

Cette requête répertorie les appareils dont la mémoire physique et virtuelle est en Go.

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

Nombre d’appareils par version du système d’exploitation

Cette requête fournit un résumé des appareils par version du système d’exploitation.

OsVersion| summarize DevicesCount = count() by OsVersion

Informations sur le bios des appareils

Cette requête répertorie les appareils en fonction du fabricant du BIOS.

BiosInfo| where Manufacturer contains "Microsoft"

Appareils TPM désactivés

Cette requête répertorie les appareils dont le module TPM est désactivé.

Tpm | where Enabled != true

Opérateurs pris en charge

La requête d’appareil prend uniquement en charge un sous-ensemble des opérateurs pris en charge dans le Langage de requête Kusto (KQL). Les opérateurs suivants sont actuellement pris en charge :

Opérateurs de table

Les opérateurs de table peuvent être utilisés pour filtrer, synthétiser et transformer des flux de données. Les opérateurs suivants sont pris en charge :

Opérateurs de table Description
count Retourne une table avec un enregistrement unique contenant le nombre d’enregistrements.
distinct Produit une table avec la combinaison distincte des colonnes fournies de la table d’entrée.
join Fusionnez les lignes de deux tables pour former une nouvelle table en faisant correspondre la ligne pour le même appareil. Seuls les types de jointure de innerunique, Leftouter, Fullouter, Rightouteret internes sont pris en charge. Si vous tapez un type de jointure autre que celui pris en charge, ils sont ignorés. Les instructions de jointure prennent en charge on la syntaxe si elles sont jointes avec Device ou Device.Deviceid. La syntaxe courante pour la jointure est LeftEntity | join [hints] (RightEntity) sur Conditions. Pour plus d’informations, consultez la documentation de jointure .
order by Triez les lignes de la table d’entrée dans l’ordre d’une ou plusieurs colonnes.
project Sélectionne les colonnes à inclure, renommer ou déplacer et insère de nouvelles colonnes calculées.
take Renvoie jusqu’au nombre de lignes spécifié.
top Retourne les N premiers enregistrements triés par les colonnes spécifiées.
where Filtre une table sur le sous-ensemble de lignes qui répondent à un prédicat.
summarize produit une table qui agrège le contenu de la table d’entrée.

Opérateurs scalaires

Les opérateurs scalaires peuvent être utilisés pour effectuer des opérations sur des valeurs individuelles. Les opérateurs suivants sont pris en charge :

Opérateurs Description Exemple
== Equal 1 == 1, 'aBc' == 'AbC'
!= N’est pas égal à 1 != 2, 'abc' != 'abcd'
< Moins 1 < 2, 'abc' < 'DEF'
> Plus 2 > 1, 'xyz' > 'XYZ'
<= Inférieur ou égal à 1 <= 2, 'abc' <= 'abc'
>= Supérieur ou égal à 2 >= 1, 'abc' >= 'ABC'
+ Additionner 2 + 1, now() + 1d
- Soustraire 2 - 1, now() - 1h
* Multiplier 2 * 2
/ Diviser 2 / 1
% Modulo 2 % 1
like LHS contient une correspondance pour RHS 'abc' like '%B%'
contains RHS se produit comme une sous-séquence de LHS 'abc' contains 'b'
!contains RhS ne se produit pas dans LHS 'team' !contains 'i'
startswith RHS est une sous-séquence initiale de LHS 'team' startswith 'tea'
!startswith RHS n’est pas une sous-séquence initiale de LHS 'abc' !startswith 'bc'
endswith RHS est une sous-séquence fermante de LHS 'abc' endswith 'bc'
!endswith RHS n’est pas une sous-séquence fermante de LHS 'abc' !endswith 'a'
and True si et uniquement si RHS et LHS ont la valeur true (1 == 1) and (2 == 2)
or True si et uniquement si RHS ou LHS a la valeur true (1 == 1) or (1 == 2)

Fonctions d’agrégation

Les fonctions d’agrégation peuvent être utilisées pour résumer les données. Les fonctions suivantes sont prises en charge :

Fonction Description
avg() Retourne la moyenne des valeurs dans le groupe
count() Retourne le nombre d’enregistrements par groupe de synthèse
countif() Retourne le nombre de lignes pour lesquelles le prédicat prend la valeur true.
dcount() Retourne le nombre de valeurs distinctes dans le groupe
max() Retourne la valeur maximale dans le groupe
maxif() Retourne la valeur maximale dans le groupe pour lequel le prédicat prend la valeur true
min() Retourne la valeur minimale dans le groupe
minif() Retourne la valeur minimale dans le groupe pour lequel le prédicat prend la valeur true
percentile() Retourne une estimation pour le centile de rang le plus proche spécifié de la population définie par Expr
sum() Retourne la somme des valeurs dans le groupe
sumif() Retourne une somme d’Expr pour laquelle le prédicat prend la valeur true.

Fonctions scalaires

Les fonctions scalaires peuvent être utilisées pour effectuer des opérations sur des valeurs individuelles. Les fonctions suivantes sont prises en charge :

Fonction Description
ago() Soustrait l’intervalle de temps donné de l’heure UTC actuelle.
bin() Arrondit les valeurs à un nombre de multiples dateheure d’une taille de compartiment donnée.
case() Évalue une liste de prédicats et retourne la première expression de résultat dont le prédicat est satisfait.
datetime_add() Calcule un nouveau datetime à partir d’un datepart spécifié multiplié par un montant spécifié, ajouté à un datetime spécifié. Les valeurs négatives pour le paramètre amount ne sont pas prises en charge.
datetime_diff() Calcule la différence entre deux valeurs datetime.
iif() Évalue le premier argument et retourne la valeur du deuxième ou du troisième argument selon que le prédicat a été évalué à true (deuxième) ou false (troisième).
indexof() Signale l’index de base zéro de la première occurrence d’une chaîne spécifiée dans la chaîne d’entrée.
isnotnull() Évalue son seul argument et retourne une valeur booléenne indiquant si l’argument est évalué à une valeur non null.
isnull() Évalue son seul argument et retourne une valeur booléenne indiquant si l’argument prend la valeur null.
now() Retourne l’heure d’horloge UTC actuelle.
strcat() Concatène entre 1 et 64 arguments.
strlen() Retourne la longueur, en caractères, de la chaîne d’entrée.
substring() Extrait une sous-chaîne d’une chaîne source à partir d’un index jusqu’à la fin de la chaîne.
tostring() Convertit l’entrée en représentation sous forme de chaîne.

Propriétés prises en charge

La requête d’appareil prend en charge les entités suivantes. Pour en savoir plus sur les propriétés prises en charge pour chaque entité, consultez Intune Schéma de plateforme de données.

  • 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

Entité d’appareil

La requête d’appareil pour plusieurs appareils prend en charge une entité liée. L’entité Device peut être utilisée avec toutes les autres entités prises en charge. L’entité d’appareil prend en charge les propriétés suivantes :

Propriété Type Description
DeviceId String ID unique généré par Intune dans le cadre de l’inscription de l’appareil.
EntraDeviceId String ID unique généré par Microsoft Entra dans le cadre de l’inscription ou de la jointure Microsoft Entra.
ManagementName String Nom d’appareil facilement reconnaissable utilisé uniquement dans le centre d’administration Intune. La modification de ce nom ne modifie pas le nom de l’appareil ou le nom dans le Portail d'entreprise.
DeviceName String Nom de l’appareil
SerialNumber String Numéro de série de l’appareil
Manufacturer String Fabricant de l’appareil
Model String Modèle d’appareil.
OSDescription String Description complète de l’édition du système d’exploitation
OSVersion String Version du système d’exploitation sur l’appareil
EnrollmentProfileName String Nom du profil d’inscription affecté à l’appareil. La valeur par défaut est une chaîne vide indiquant qu’aucun profil d’inscription n’a été affecté à l’appareil.
EnrolledDateTime Datetime Date et heure de l’inscription de l’appareil dans Intune.
CertExpirationDateTime Datetime Indique la date d’expiration du certificat de gestion des appareils.
EnrolledByUserId String Identificateur unique de l’utilisateur qui a inscrit l’appareil
PrimaryUserId String Identificateur unique de l’utilisateur associé à l’appareil.
LastLoggedOnUserId String Identificateur unique de l’utilisateur qui s’est connecté à l’appareil pour la dernière fois.
InCompliancePeriodUntilDateTime Datetime Date et heure d’expiration de la période de grâce de conformité de l’appareil
DeviceCategoryId String Nom complet de la catégorie d’appareil. Il s'agit par défaut d'une chaîne vide.
LastSeenDateTime String Date et heure de dernière connexion de l’appareil à Intune.
Ownership String Propriété de l’appareil.

L’entité d’appareil vous permet de référencer l’appareil associé à une ligne obtenue sans avoir à écrire une requête distincte pour les joindre. Essentiellement, il agit comme une jointure automatique pour inclure des informations d’appareil dans les résultats de votre requête.

L’entité d’appareil est automatiquement jointe à toutes les autres entités pour faciliter l’utilisation. L’entité d’appareil est la première colonne des résultats de la requête, sauf si la requête met à jour le type de retour via l’utilisation projectd’opérateurs tels que , summarizeou distinct.

L’utilisation de Device par lui-même dans une requête est analysée sur Device.DeviceId. Dans la colonne Appareil retournée par défaut, deviceId est traduit en DeviceName pour faciliter l’identification des appareils. L’entité d’appareil et ses propriétés peuvent également être référencées dans les requêtes en référençant Device. [Insert, propriété].

La requête suivante retourne toutes les informations DiskDrive pour tous les appareils portant le numéro de série 123 :

DiskDrive
where Device.SerialNumber = 123

La requête suivante projette les propriétés Id d’appareil et Fabricant de l’entité DiskDrive :

DiskDrive | project Device.DeviceId, Manufacturer

Bien que l’entité Device affichée en tant que première colonne par défaut s’affiche sous forme de noms d’appareils utilisant Device par lui-même dans une requête analysée sur Device.DeviceId. Cette requête retourne des résultats classés par DeviceID, et non par DeviceName :

MemoryInfo | order by Device

De même, cette requête ne retourne aucun résultat, sauf si l’ID d’appareil est Desktop123. Il n’interroge pas le nom de l’appareil :

Cpu | where Device == "Desktop123"

Utilisez l’exemple suivant pour interroger le nom de l’appareil :

Cpu | where Device.DeviceName == 'Desktop123"

Limitations connues

  • L’utilisation de l’entité Device dans les fonctions d’agrégation affiche un trait de soulignement rouge. Toutefois, la requête peut toujours s’exécuter et peut retourner des résultats comme prévu. Par exemple, la requête suivante montre un trait de soulignement rouge sous Appareil , mais s’exécute toujours :

    Cpu | summarize max(Device) by Manufacturer.
    
  • Les requêtes avec un opérateur de jointure, des paramètres $left et $right affichent un trait de soulignement rouge sous $left et $right. Toutefois, la requête peut toujours s’exécuter et retourner les résultats comme prévu.

  • Une requête unique peut contenir un maximum de trois opérateurs de jointure. Les requêtes avec davantage de jointures échouent.

  • Un maximum d’environ 50 000 enregistrements sont retournés pour une requête.

  • Un maximum de 10 requêtes peuvent être envoyées par minute. Toutes les autres requêtes dans la même minute échouent.

  • Un maximum de 1 000 requêtes peuvent être envoyées par mois.

  • Les valeurs négatives pour le paramètre amounts de la fonction datetime_add() ne sont pas prises en charge.

  • Le référencement d’une variable qui a été résumée par une fonction d’agrégation génère une erreur. Le fait de nommer explicitement la variable permet à la requête de réussir à nouveau. Par exemple, la requête Appareil | summarize dcount(DeviceId) | l’ordre par dcount_DeviceId échoue. Appareil | summarize DCountDeviceIdRename=dcount(DeviceId) | order by DCountDeviceIdRename réussit.