Intune troubleshooting – Partie 2 : collecter (à distance) les logs de vos appareils et les uploader sur GitHub

Dans cet article, je vais vous présenter un moyen de collecter à distance via Intune les logs relatifs à Intune de vos appareils enrôlés et de les uploader sur GitHub.

Contexte

Par défaut, Intune n’offre pas beaucoup de possibilités pour faire du troubleshooting sur un poste.
Pour cela, il faut souvent aller sur la machine, vérifier les journaux d’évènements, fichiers de logs Intune…
Vous souhaitez pouvoir collecter ces logs sans bouger et de manière sécurisée.

D’autres méthodes ?

Je présenterais dans d’autres articles, différentes manières de procéder :

  • Partie 1: Collecter les logs d’un appareil et les uploader sur Azure File
  • Partie 2: Collecter les logs d’un appareil et les uploader sur GitHub
  • Partie 3: Collecter les logs d’un appareil et les upload

Les scripts

Le script est disponible sur GitHub, sur le lien ci-dessous :

Pourquoi GitHub ?

Dans la première méthode, j’expliquais comment faire cela dans Azure File.
Cependant pour cela, il faut un compte Azure (ce qui est payant).
GitHub étant gratuit, nous allons donc utiliser cette méthode.
Dans cet exemple nous allons bien entendu stocker les logs dans un repository prové sur GitHub afin que tout le monde n’y ait pas accès.

Prérequis

  • Win32 Prep tool disponible ici
  • Un repository privé sur GitHub
  • Un token GitHub

GitHub private repository

Nous allons tout d’abord créé un repository privé sur GitHub.

  1. Allez dans votre profile
  2. Allez dans repositories
  3. Cliquez sur New
  4. Saisir un nom de répertoire
  5. Choisir Private
  6. Cochez Initialize this repository with a README
  7. Cliquez sur Create repository

GitHub token

  1. Cliquez sur ce lien
  2. Saisir un nom comme Intune_Logs
  3. Sélectionnez ce que vous souhaitez comme accès
  4. Cliquez sur Generate token
  5. Garder ce token pour la suite

Que voulons-nous collecter ?

Journaux d’évènements

Le script permettra de collecter les journaux d’évènements suivants:

  • System
  • Microsoft > Windows > DeviceManagement-Enterprise-Diagnostics-Provider
  • Microsoft > Windows > AAD
  • Microsoft > Windows > ModernDeployment-Diagnostics-Provider
  • Microsoft > Windows > AppxDeploymentServer
  • Microsoft > Windows > assignedaccess
  • Microsoft > Windows > assignedaccessbroker
  • Microsoft > Windows > provisioning-diagnostics-provider
  • Microsoft > Windows > shell-core
  • Microsoft > Windows > user device registration

Logs Intune

Le script permettra de collecter les logs situés dans ProgramData\Microsoft\IntuneManagementExtension.

Rapports de diagnostic

Le script permettra de collecter les rapports de diagnostic ci-dessous :

  • Rapport global
  • Rapport Autopilot
  • DeviceEnrollment report
  • DeviceProvisioning report
  • TPM report

Comment utiliser le script ?

Le script est nommé Collect_Intune_Device_Logs.ps1
Plusieurs paramètres sont à renseigner, voir ci-dessous:

  • GitHub_Token: Tken that we have generated previously
  • GitHub_OwnerName: Your GitHub account name, for me it’s damienvanrobaeys
  • GitHub_Repository: Pivate repositiry that will contain logs

Pour cela il faut remplir le fichier GitHub_Infos.xml

Intégration dans Intune

Dans cet exemple nous allons créer un groupe Azure AD dans lequel nous intégrerons les appareils pour lesquels nous souhaitons récupérer les logs.

Création du contenu de notre appli

  1. Créer un dossier Collect_intune_Device_Logs
  2. Copier le fichier Collect_intune_Device_Logs.ps1
  3. Copier le fichier GitHub_infos.xml
    Ci-dessous le contenu de mon dossier:

Création du package

  1. Exécuter
  2. Sélectionner le dossier Collect_intune_Device_Logs
  3. Sélectionner le fichier Collect_intune_Device_Logs.ps1
  4. Sélectionner un dossier d’export du fichier intunewin

Création de l’appli Win32

  1. Allez dans Intune
  2. Allez dans Clients apps
  3. Cliquez sur Apps
  4. Cliquez sur Add
  5. Sélectionnez Windows app (Win32) puis Select
  6. Cliquez sur Select app package file

Choisir le fichier Collect_Intune_Device_Logs.intunewin

  1. Cliquez sur OK
  2. Saisir un nom et configurer comme vous le souhaitez
  3. Dans Install et Uninstall command saisir:
C:\Windows\Sysnative\WindowsPowerShell\v1.0\powershell.exe -noprofile -executionpolicy Bypass -file .\Collect_Intune_Device_Logs.ps1
  1. Cliquez sur Next
  2. Choisissez vos requirements
  3. Cliquez sur Next
  4. Dans Detection rules, choisir Use a detection script
  1. Choisir le fichier Detection_script.ps1
  2. Cliquez sur Add puis cliquez on OK
  3. Cliquez sur Next
  4. Dans la partie Dependencies Cliquez sur Next
  5. Dans la partie Scope tags Cliquez sur Next
  6. Dans Assignments ciquez sur Required puis Add group
  7. Sélectionnez le groupe
  8. Cliquez sur Next
  9. Cliquez sur Create

Collecte des logs en action

Ci-dessous mon repository GitHub avant:

Ci-dessous mon repository GitHub après:

Vérifier le log

Lorsque le script principal est lancé un fichier de log est rempli.
Il est localisé dans C:\Windows\Debug

A propos de l'auteur

Damien VAN ROBAEYS

Ingénieur Systèmes travaillant principalement sur ce qui tourne autour du poste de travail (MDT, SCCM, Intune) et l’automatisation avec PowerShell. MVP Microsoft et auteur pour ENI, il publie régulièrement sur son blog et gère différents groupes Facebook, PowerShell et WPF (~4000 membres), Windows Autopilot (~3000 membres).

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *