Requêtes d’exemple pour l’inventaire Power Platform

Les exemples de requêtes suivants s’exécutent sur la table PowerPlatformResources dans Azure Resource Graph. Ils couvrent le comptage et la distribution des ressources, la découverte de champs, les recherches de ressources et l’analyse de l’utilisation du connecteur. Pour obtenir une vue d’ensemble de l’inventaire Power Platform, consultez l’inventaire Power Platform. Pour la référence du schéma et des champs, voir la référence du schéma d’inventaire Power Platform.

Comment exécuter ces requêtes

Vous pouvez exécuter l’une de ces requêtes à partir des interfaces Azure Resource Graph. Pour obtenir des instructions pas à pas, consultez les guides de démarrage rapide suivants :

Nombres et distribution

Nombre total de toutes les ressources

PowerPlatformResources
| count

Nombre total par type de ressource

PowerPlatformResources
| summarize resourceCount = count() by type
| order by resourceCount

Nombre par environnement

PowerPlatformResources
| extend properties = parse_json(properties)
| extend environmentId = tostring(properties.environmentId)
| summarize resourceCount = count() by environmentId
| order by resourceCount desc

Nombres par région

PowerPlatformResources
| summarize resourceCount = count() by location
| order by resourceCount desc

Principaux propriétaires par nombre d’éléments

PowerPlatformResources
| extend properties = parse_json(properties)
| extend ownerId = tostring(properties.ownerId)
| summarize resourceCount = count() by ownerId
| order by resourceCount desc

Recherches de ressources

Rechercher un seul assistant dans le locataire

PowerPlatformResources
| where type == "microsoft.copilotstudio/agents"
| where name == "[Enter the agent's ID]"

Tip

Vous trouverez l’ID de l’agent dans l’URL Copilot Studio lors de l’affichage de l’agent ou dans la colonne Nom de la table d’inventaire.

Compter les assistants par environnement d’exécution

Montre une répartition des agents créés avec le harnais GitHub Copilot, le harnais Copilot Chat ou le harnais Standard.

Vous pouvez voir le harnais d'un agent dans la colonne Harness du Centre d'administration Power Platform, sous Gérer>Copilot Studio. Cette colonne est une colonne d’interface utilisateur uniquement. Harness n’est pas encore renvoyé dans les métadonnées de l’agent ; cette requête le déduit donc des champs renvoyés par l’inventaire : properties.isCLIAgent, properties.model et properties.createdIn. Lorsque le champ properties.harness devient disponible, vous pouvez l’interroger directement. Pour connaître les définitions des champs, consultez le schéma d’inventaire des agents de Microsoft Copilot Studio.

PowerPlatformResources
| where type == "microsoft.copilotstudio/agents"
| extend properties = parse_json(properties)
| extend
    isCLIAgent = tobool(properties.isCLIAgent),
    model = tostring(properties.model),
    createdIn = tostring(properties.createdIn)
| extend harness = case(
    isCLIAgent == true, "GitHub Copilot",
    model =~ "Microsoft 365 Copilot" or createdIn =~ "Microsoft 365 Copilot Agent Builder", "Copilot Chat",
    "Standard")
| summarize agentCount = count() by harness
| order by agentCount desc

Répertorier les assistants avec leur environnement d’exécution

Retourne une ligne par assistant avec son environnement d’exécution, afin que vous puissiez rechercher et traiter des assistants individuels plutôt que de simplement les compter. Décommentez la ligne where pour renvoyer uniquement les agents générés avec le GitHub Copilot harness.

PowerPlatformResources
| where type == "microsoft.copilotstudio/agents"
| extend properties = parse_json(properties)
| extend
    isCLIAgent = tobool(properties.isCLIAgent),
    model = tostring(properties.model),
    createdIn = tostring(properties.createdIn)
| extend harness = case(
    isCLIAgent == true, "GitHub Copilot",
    model =~ "Microsoft 365 Copilot" or createdIn =~ "Microsoft 365 Copilot Agent Builder", "Copilot Chat",
    "Standard")
//| where harness == "GitHub Copilot"
| project agentName = tostring(properties.displayName),
          agentId = name,
          harness,
          environmentId = tostring(properties.environmentId),
          ownerId = tostring(properties.ownerId),
          createdAt = todatetime(properties.createdAt)
| order by harness asc, createdAt desc

Éléments créés au cours des 24 dernières heures

PowerPlatformResources
| extend properties = parse_json(properties)
| extend createdAt = todatetime(properties.createdAt)
| where createdAt >= ago(24h)

Requêtes de Power Pages (préversion)

Les requêtes Power Pages utilisent le type de ressource microsoft.powerpages/sites. L’inventaire de Power Pages est disponible uniquement pour les administrateurs généraux, les administrateurs Power Platform et les administrateurs Dynamics 365.

Répertorier les sites Power Pages

Cette requête retourne un inventaire à l’échelle du locataire de sites Power Pages avec leur environnement, leur propriétaire et leurs dates de création et de modification.

PowerPlatformResources
| where type =~ "microsoft.powerpages/sites"
| extend properties = parse_json(properties)
| project siteName = tostring(properties.displayName),
    siteId = name,
    environmentId = tostring(properties.environmentId),
    ownerId = tostring(properties.ownerId),
    createdOn = todatetime(properties.createdAt),
    lastModifiedOn = todatetime(properties.lastModifiedAt)
| order by siteName asc

Compter les sites Power Pages par environnement

Cette requête montre quels environnements contiennent le plus grand nombre de sites Power Pages.

PowerPlatformResources
| where type =~ "microsoft.powerpages/sites"
| extend properties = parse_json(properties)
| extend environmentId = tostring(properties.environmentId)
| summarize siteCount = count() by environmentId
| order by siteCount desc

Compter les sites Power Pages par propriétaire

Cette requête montre les propriétaires associés au plus grand nombre de sites Power Pages pour prendre en charge les révisions de propriété et la planification de la continuité de l’activité.

PowerPlatformResources
| where type =~ "microsoft.powerpages/sites"
| extend properties = parse_json(properties)
| extend ownerId = tostring(properties.ownerId)
| summarize siteCount = count() by ownerId
| order by siteCount desc

Sites Power Pages avec accès anonyme activé

Cette requête recherche des sites dont les métadonnées d’inventaire indiquent que l’accès anonyme est autorisé.

PowerPlatformResources
| where type =~ "microsoft.powerpages/sites"
| extend properties = parse_json(properties)
| extend anonymousAccessEnabled = tobool(properties.anonymousAccessAllowed)
| where anonymousAccessEnabled == true
| project siteName = tostring(properties.displayName),
    siteId = name,
    environmentId = tostring(properties.environmentId),
    websiteUrl = tostring(properties.siteUrl)
| order by siteName asc

Sites Power Pages récemment créés

Cette requête retourne des sites créés au cours des 30 derniers jours. Ajustez l’intervalle en fonction des besoins.

PowerPlatformResources
| where type =~ "microsoft.powerpages/sites"
| extend properties = parse_json(properties)
| extend createdOn = todatetime(properties.createdAt)
| where createdOn >= ago(30d)
| project siteName = tostring(properties.displayName),
    siteId = name,
    environmentId = tostring(properties.environmentId),
    ownerId = tostring(properties.ownerId),
    createdOn
| order by createdOn desc

sites Power Pages à l’aide de domaines personnalisés

Cette requête retourne des sites dont les métadonnées d’inventaire incluent une URL de site personnalisée.

PowerPlatformResources
| where type =~ "microsoft.powerpages/sites"
| extend properties = parse_json(properties)
| extend customDomain = tostring(properties.customSiteUrl)
| where isnotempty(customDomain)
| project siteName = tostring(properties.displayName),
    siteId = name,
    environmentId = tostring(properties.environmentId),
    websiteUrl = tostring(properties.siteUrl),
    customDomain
| order by siteName asc

Power Pages avec d’autres ressources Power Platform

Cette requête récapitule le nombre de ressources par type et environnement dans Power Platform, y compris les sites Power Pages. Les enregistrements sans ID d’environnement sont exclus.

PowerPlatformResources
| extend properties = parse_json(properties)
| extend environmentId = tostring(properties.environmentId)
| where isnotempty(environmentId)
| summarize resourceCount = count() by environmentId, type
| order by environmentId asc, resourceCount desc

Requêtes du connecteur

Les requêtes suivantes analysent l’utilisation des connecteurs sur les types de ressources couverts par Inventaire des connecteurs. Chaque requête s’exécute sur le tableau properties.powerPlatformConnectors émis par des applications canvas, des applications basées sur des modèles, des applications créées dans le runtime managé Copilot, des flux cloud, des flux d’agent, des flux d’agent de flux de travail, des agents Copilot Studio sur le harnais Standard ou le harnais GitHub Copilot, et des agents créés dans Microsoft 365 Copilot Agent Builder. Les applications créées dans le runtime géré Copilot utilisent le type microsoft.powerapps/apps avec le sous-type microsoftApp. Les requêtes excluent les applications App Builder, qui utilisent le même type, mais n’émettent pas de données de connecteur.

Principaux connecteurs utilisés dans les ressources Power Platform

Répertorie les connecteurs utilisés par les ressources les plus distinctes. Utile pour comprendre quels connecteurs sont les plus adoptés au sein du locataire.

PowerPlatformResources
| where type in (
    "microsoft.powerapps/canvasapps",
    "microsoft.powerapps/modeldrivenapps",
    "microsoft.powerapps/apps",
    "microsoft.powerautomate/cloudflows",
    "microsoft.powerautomate/agentflows",
    "microsoft.powerautomate/m365agentflows",
    "microsoft.copilotstudio/agents")
| extend properties = parse_json(properties)
| where type != "microsoft.powerapps/apps" or tostring(properties.subType) == "microsoftApp"
| mv-expand connector = properties.powerPlatformConnectors
| extend connectorId = tostring(connector.connectorId)
| where isnotempty(connectorId)
| summarize ResourceCount = dcount(name) by connectorId
| order by ResourceCount desc
| take 10

Distribution du nombre de connecteurs par ressource

Indique le nombre de ressources qui utilisent 0, 1, 2 ou plus de connecteurs. Utile pour repérer les valeurs hors norme de complexité.

PowerPlatformResources
| where type in (
    "microsoft.powerapps/canvasapps",
    "microsoft.powerapps/modeldrivenapps",
    "microsoft.powerapps/apps",
    "microsoft.powerautomate/cloudflows",
    "microsoft.powerautomate/agentflows",
    "microsoft.powerautomate/m365agentflows",
    "microsoft.copilotstudio/agents")
| extend properties = parse_json(properties)
| where type != "microsoft.powerapps/apps" or tostring(properties.subType) == "microsoftApp"
| extend connectorCount = array_length(properties.powerPlatformConnectors)
| summarize ResourceCount = count() by toint(connectorCount)
| order by connectorCount asc

Rechercher toutes les ressources qui utilisent un connecteur spécifique

Remplacez shared_sharepointonline par le connecteur que vous souhaitez rechercher. Cette requête est utile pour l’analyse d’impact lorsqu’un connecteur a un problème connu, est déconseillé ou nécessite de nouvelles licences.

PowerPlatformResources
| where type in (
    "microsoft.powerapps/canvasapps",
    "microsoft.powerapps/modeldrivenapps",
    "microsoft.powerapps/apps",
    "microsoft.powerautomate/cloudflows",
    "microsoft.powerautomate/agentflows",
    "microsoft.powerautomate/m365agentflows",
    "microsoft.copilotstudio/agents")
| extend properties = parse_json(properties)
| where type != "microsoft.powerapps/apps" or tostring(properties.subType) == "microsoftApp"
| mv-expand connector = properties.powerPlatformConnectors
| where tostring(connector.connectorId) == "shared_sharepointonline"
| project resourceName = tostring(properties.displayName),
          resourceId = name,
          resourceType = type,
          environmentId = tostring(properties.environmentId),
          operationsUsed = connector.operations

Utilisation du connecteur par environnement

Répertorie chaque connecteur utilisé dans chaque environnement, avec le nombre de ressources distinctes qui l’utilisent. Cette liste est utile pour comprendre les modèles d’adoption et informer les décisions de stratégie DLP.

PowerPlatformResources
| where type in (
    "microsoft.powerapps/canvasapps",
    "microsoft.powerapps/modeldrivenapps",
    "microsoft.powerapps/apps",
    "microsoft.powerautomate/cloudflows",
    "microsoft.powerautomate/agentflows",
    "microsoft.powerautomate/m365agentflows",
    "microsoft.copilotstudio/agents")
| extend properties = parse_json(properties)
| where type != "microsoft.powerapps/apps" or tostring(properties.subType) == "microsoftApp"
| mv-expand connector = properties.powerPlatformConnectors
| extend connectorId = tostring(connector.connectorId)
| where isnotempty(connectorId)
| extend environmentId = tostring(properties.environmentId)
| summarize ResourceCount = dcount(name) by environmentId, connectorId
| order by environmentId asc, ResourceCount desc