Sommaire
ToggleDans cet article, nous verrons comment exécuter des requêtes KQL sur Microsoft Defender pour Endpoint à l’aide d’Azure Automation, PowerShell et Graph API.
La solution
Nous procéderons comme suit :
- Créer un compte Azure automation
- Configurer une identité managée
- Attribuer des permissions à l’identité managée
- S’authentifier avec l’identité managée
- Exécuter une requête KQL avec PowerShell
Obtenir les scripts
Cliquez sur l’image GitHub ci-dessous pour obtenir les scripts.

Vous y trouverez :
- Assign_permissions.ps1 : script pour ajouter des permissions à l’identité managée
- Runbook.ps1 : le Runbook Azure Automation
Création d’un compte d’automation
Objectif : ici, nous allons créer le compte Azure automation qui sera utilisé pour exécuter le script et envoyer des données.
- Allez dans Azure
- Allez dans Automation account
- Cliquez sur Create
- Saisissez un nom
- Choisissez une souscription, un groupe de ressources et une région
- Cliquez sur Create
Configuration de l’identité managée
Objectif : l’identité managée est utilisée pour s’authentifier auprès de votre tenant sans fournir de credentials.
Lors de la configuration, une nouvelle application d’entreprise Azure sera créée. Celle-ci sera utilisée pour s’authentifier et effectuer des appels API.
Procédez comme suit :
- Accédez à votre compte d’automation
- Allez dans Identity
- Cliquez sur System-assigned
- Sélectionnez On
- Cliquez sur Save
- Confirmez avec Yes
- Une application d’entreprise portant le même nom que le compte d’automation sera créée
Ajout de permissions
Objectif : pour exécuter une requête KQL via notre compte d’automation, nous devons ajouter la permission AdvancedQuery.Read.All.
Procédez comme suit :
- Modifiez le script Assign_permissions_MDE.ps1
- Renseignez les variables $TenantID et $DisplayNameOfMSI
- Ouvrez PowerShell avec des droits administrateur globaux
- Exécutez le script Assign_permissions.ps1
Modification du script
Objectif : ici, nous adapterons le script Runbook à nos besoins.
Procédez comme suit :
- Modifiez le script Runbook.ps1
- Remplacez la variable $My_Advanced_Query par votre requête KQL
Création du Runbook
Objectif : créer le script qui exécute la requête KQL à distance.
- Cliquez sur Add a runbook
- Saisissez un nom
- Sélectionnez PowerShell
- Cliquez sur Create
- Cliquez sur Modify dans le runbook
- Copiez le contenu du script Runbook.ps1
- Cliquez sur Save
- Publiez le runbook
- Exécutez-le
- Les résultats de la requête KQL seront affichés
Exportation des résultats vers un fichier CSV
Objectif : exporter les résultats de la requête dans un fichier CSV, puis l’envoyer à SharePoint.
Ajout de modules
- Accédez à votre compte d’automation
- Cliquez sur Modules gallery
- Importez les modules suivants :
- Microsoft.Graph.Users.Actions
- Microsoft.Graph.Authentication
Ajout de permission pour envoyer des mails
- Utilisez le script Assign_permissions_Mail.ps1
- Ajoutez les permissions nécessaires, notamment Mail.Send
- Renseignez les variables suivantes : $TenantID, $DisplayNameOfMSI
Configuration du script
Renseignez les variables suivantes si vous souhaitez envoyer des informations par mail :
$Notif_Title, $Notif_Message, $Send_Mail, $Mail_From, $Mail_To
Envoi du CSV par mail
Pour envoyer les résultats de la requête en CSV à SharePoint :
Modifiez les variables $appId, $appSecret, $tenantID dans le script Runbook.ps1.


