Sommaire
ToggleDans 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 à distance ce que vous voulez (fichiers, event logs…)
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.
- Allez dans votre profile
- Allez dans repositories
- Cliquez sur New
- Saisir un nom de répertoire
- Choisir Private
- Cochez Initialize this repository with a README
- Cliquez sur Create repository
GitHub token
- Cliquez sur ce lien
- Saisir un nom comme Intune_Logs
- Sélectionnez ce que vous souhaitez comme accès
- Cliquez sur Generate token
- 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
- Créer un dossier Collect_intune_Device_Logs
- Copier le fichier Collect_intune_Device_Logs.ps1
- Copier le fichier GitHub_infos.xml
Ci-dessous le contenu de mon dossier :
Création du package
- Exécuter
- Sélectionner le dossier Collect_intune_Device_Logs
- Sélectionner le fichier Collect_intune_Device_Logs.ps1
- Sélectionner un dossier d’export du fichier intunewin
Création de l’appli Win32
- Allez dans Intune
- Allez dans Clients apps
- Cliquez sur Apps
- Cliquez sur Add
- Sélectionnez Windows app (Win32) puis Select
- Cliquez sur Select app package file
- Choisir le fichier Collect_Intune_Device_Logs.intunewin
- Cliquez sur OK
- Saisir un nom et configurer comme vous le souhaitez
- Dans Install et Uninstall command saisir:
C:\Windows\Sysnative\WindowsPowerShell\v1.0\powershell.exe -noprofile -executionpolicy Bypass -file .\Collect_Intune_Device_Logs.ps1
- Cliquez sur Next
- Choisissez vos requirements
- Cliquez sur Next
- Dans Detection rules, choisir Use a detection script
- Choisir le fichier Detection_script.ps1
- Cliquez sur Add puis cliquez on OK
- Cliquez sur Next
- Dans la partie Dependencies Cliquez sur Next
- Dans la partie Scope tags Cliquez sur Next
- Dans Assignments ciquez sur Required puis Add group
- Sélectionnez le groupe
- Cliquez sur Next
- 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