Dans cet article je vais vous présenter un rapport Log Analytics permettant de monitorer les postes ayant eu des BSOD au cours des 30 derniers jours.


Que souhaitons-nous ?

Dans Log Analytics, nous voulons les éléments ci-dessous :

- Nombre de BSOD par modèles

- Nombre de BSOD par version du BIOS

- Nombre de BSOD par fabricant

- Nombre de BSOD par système d'exploitation

- Nombre de BSOD par date

- Tous les BSOD pour un appareil spécifique

- Lien vers les logs des appareils (au cours des 15 derniers jours)

- Top 10 des appareils avec BSOD

- Détails des appareils


Dans ce rapport, vous pourrez obtenir beaucoup d'informations sur les BSOD.

Vous pourrez par exemple obtenir les 10 appareils avec le plus de BSOD au cours des 30 derniers jours.

L'onglet Détails vous donnera la date et le code du dernier BSOD pour chaque appareil, mais également tous les BSOD (date et code) pour un nom d'appareil spécifique.

L'avantage de la solution est que vous aurez également accès aux logs de chaque appareil qui a eu un ou des BSOD au cours du mois dernier.


La solution

Nous utiliserons PowerShell et Azure Automation.

Nous allons procéder comme ci-dessous :

1. Créer un script dans Azure Automation

2. Le script récupère les appareils avec BSOD

3. Le script récupère tous les BSOD pour un appareil spécifique

4. Le script envoie les données dans Log Analytics


Obtenir les logs BSOD des appareils

Le rapport vous aide à résoudre les problèmes liés aux appareils en accédant directement aux lgs via le rapport Log Analytics.

Pour chaque appareil ayant eu un BSOD, vous trouverez une colonne avec le lien vers les logs des appareils sur SharePoint.

Pour obtenir les logs des appareils, il faudra aupréalable créer un script dans la partie Proactive Remediation qui téléchargera les journaux sur SharePoint lorsqu'il détectera un BSOD.

Vous pouvez retrouver ici mon article à ce sujet.

Vous accéderez alors aux logs ci-dessous directement via le rapport :

- Tous les fichiers .dmp

- Date de dernier reboot

- Liste des services

- Liste des correctifs installés

- Liste des pilotes

- Liste des processus


Vous récupérerez également le contenu du journal des événements des 15 derniers jours pour les journaux suivants :

- System

- Applications

- Security

- Kernel-Power

- Kernel-PnP/Driver Watchdog

- Kernel-PnP

- Kernel-LiveDump

- Kernel-ShimEngine

- Kernel-Boot

- Windows-Kernel-IO


A quoi ressemble le rapport ?

Le classeur est divisé en deux onglets :

- Resume : affiche le graphique avec le nombre de BSOD

- Détails : affiche les détails du BSOD


Onglet Resume

Nombre de BSOD par modèles


Nombre de BSOD par version du BIOS


Nombre de BSOD par fabricant


Nombre de BSOD par système d'exploitation


Nombre de BSOD par date




Nombre de BSOD par code d'erreur


Onglet Détails

Tous les BSOD pour un appareil spécifique au cours des 30 derniers jours


Lien vers les logs des appareils (au cours des 15 derniers jours)


Top 10 des appareils avec BSOD


Il existe également 2 filtres vous permettant de filtrer les détails sur différentes choses:

- Filtrer sur le nom de l'appareil

- Filtrer sur les modèles




Télécharger le rapport

Cliquez sur l'image GitHub ci-dessous pour obtenir tous les fichiers.

Les fichiers ci-dessous sont disponibles :

- Runbook_script.ps1 : script d'automatisation Azure

- Assign_permissions.ps1 : ajouter des autorisations sur le compte

- Workbook.json : fichier de classeur JSON



Comment utiliser le script ?

Configuration des logs SharePoint

Le script permettant d'envoyer tous les BSOD à Log Analytics s'appelle Runbook_script.ps1 et est disponible sur le lien GitHub.

La première étape consiste à créer une correction proactive qui détectera les BSOD sur les appareils et enverra les journaux à SharePoint.

Si vous souhaitez utiliser cette partie, définissez la variable $Use_SharePoint_Logs sur $True

Sinon, réglez-le sur $False


Si vous souhaitez utiliser cette fonctionnalité, vous devez configurer les variables ci-dessous :

- $ClientID = "ID client de l'application SharePoint"

- $Secret = "Secret de l'application SharePoint"

- $Site_URL = "URL du site SharePoint"

- $Folder_Location = "Dossier SharePoint où envoyer les journaux"


Informations d'analyse des journaux

Afin de créer ce rapport, nous devrons ajouter des informations relatives à l'espace de travail Log Analytics dans le script PS1.


Voir ci-dessous les informations requises :

- ID wo workspace

- Clé primaire


Pour obtenir ces informations, accédez à Log Analytics Workspace > Gestion des agents

Vous trouverez à la fois l'ID de l'espace de travail et la clé primaire.


Ensuite nous procéderons comme ci-dessous :

1. Ouvrez le fichier Runbook_script.ps1

2. Remplissez les variables ci-dessous :

- $CustomerID : identifiant de l'espace de travail

- $ShareKey : clé primaire


Compte Azure Automation

Création du compte

1. Allez sur Azure

2. Accédez à Automation account

3. Cliquez sur Create

4. Tapez un nom

5. Choisissez un abonnement

6. Choisissez le groupe de ressources

7. Choisissez votre région

8. Cliquez sur Create


Ajout d'autorisations

Une fois l'identité managée configurée, une nouvelle application d'entreprise sera créée.

Ensuite, vous devez ajouter des autorisations pour pouvoir effectuer des actions.

Les autorisations requises sont les suivantes :

- DeviceManagementConfiguration.Read.All

- DeviceManagementManagedDevices.Read.All


Pour ajouter cette autorisation, vous devrez utiliser PowerShell, cela ne peut pas être fait via le portail.

Pour cela, utilisez le script Assign_permission.ps1 sur mon dépôt GitHub.

Il vous suffit de remplir les variables ci-dessous :

- $TenantID : votre identifiant de locataire

- $DisplayNameOfMSI : nom de votre compte d'automatisation


Ajout de modules

Si vous souhaitez utiliser les logs des postes sur SharePoint, vous devrez ajouter un module.

Pour cela nous allons procéder comme ci-dessous :

1. Allez dans votre Azure Automation

2. Cliquez sur la galerie de modules

3. Rechercher : pnp.powershell

4. Cliquez sur pnp.powershell

5. Cliquez sur Import

6. Cliquez sur OK


Création d'un Runbook

1. Allez dans Runbooks

2. Cliquez sur + Create a runbook

3. Tapez un nom

4. Dans le type Runbook, sélectionnez PowerShell

5. Cliquez sur Create


Ajouter un script dans Runbook

Le script runbook se trouve dans les sources téléchargées

Son nom est : Runbook_script.ps1


Tester le Runbook

1. Cliquez sur volet Test

2. Cliquez sur Start


Publier le Runbook

1. Accédez à votre Runbook

2. Cliquez sur Edit

3. Cliquez sur Publish

4. Cliquez sur Yes


Planifier le Runbook

1. Accédez à votre Runbook

2. Cliquez sur Schedules

3. Cliquez sur + Add a schedule

4. Cliquez sur Link a schedule to your runbook

5. Cliquez sur + Add a schedule

6. Saisissez un nom

7. Dans Récurrence, sélectionnez Recuring

8. Cliquez sur Create


Rapport Log Analytics

Dans cette partie, nous ajouterons le rapport.

Le rapport peut être téléchargé sur GitHub.

Le rapport est : Workbook.json


Pour l'ajouter, procédez comme suit :

1. Accédez au portail Azure

2. Allez dans Log Analytics workspace

3. Aller dans Workbook

4. Cliquez sur New

5. Allez dans Advanced editor

6. Supprimer tout le contenu

7. Allez sur le lien GitHub, ici

8. Cliquez sur le bouton copier comme ci-dessous :

9. Cliquez sur Apply

10. Cliquez sur Done editing puis sur Save