Intune troubleshooting – Partie 3 : collecter (à distance) ce que vous voulez (fichiers, dossiers, event logs…) sur vos machines

Dans cet article, je vais vous présenter un moyen de collecter à distance via Intune ce que vous voulez sur des machines (fichiers, dossiers, event logs…) et les uploader sur Azure ou GitHub.

Contexte

Par défaut, il est difficile du troubleshooting approfondi des postes de travail.
Si vous souhaitez accéder à des fichiers, ou event logs, il faut vous connecter à distance sur les machines.
Vous souhaitez récupérer certains dossiers ou event logs à distance.
Vous souhaitez un moyen sécurisé de les récupérer sans avoir à fournir des identifiants.
Le pincipe est simple, ajouter le contenu que vous souhaitez récupérer dans un XML.

D’autres méthodes ?

Le script

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

Le fichier XML

Le fichier XML est nommé Content_to_collect.xml
Celui-ci contient les différentes noeuds:

  • Folder
  • Event log

Par défaut, il se présente tel que ci-dessous:

Le script va créer un fichier ZIP contenant chaque fichier et dossier de la partie Folder et chaque event logs de la partie Event log.

Si vous souhaitez ajouter un dossier à récupérer, il faudra procéder comme ci-dessous:

  1. Nous souhaitons par exemple récupérer le dossier C:\PerfLogs
  2. Ajoutez un nouveau noeud
  3. Saisissez le chemin du dossier
  4. Ajoutez la ligne suivante: <Folder_Path>C:\PerfLogs</Folder_Path>

Si vous souhaitez récupérer un nouvel event log, il faudra procéder comme ci-dessous:

  1. Nous souhaitons par exemple récupérer l’event log WLAN-AutoConfig
  2. Il faudra d’abord récupérer le chemin de celui-ci
  3. Vous pouvez le trouver en utilisant la commande suivante:
Get-WinEvent -ListLog * | where {$_.logname -like "*wlan*"}
  1. Le chemin sera le suivant: Microsoft-Windows-WLAN-AutoConfig/Operational
  2. Ajoutez un nouveau noeud, comme ci-dessous:
<event_log>
 <event_name></Event_Name>
 <event_path></Event_Path>   
</Event_Log>
  1. Dans le champ Event_Name, saisissez WLAN-AutoConfig
  2. Dans le champ Event_Path, saisissez Microsoft-Windows-WLAN-AutoConfig/Operational
  3. Ci-dessous le noeud complet:
<event_log>
 <event_name>WLAN-AutoConfig</Event_Name>
 <event_path>Microsoft-Windows-WLAN-AutoConfig/Operational</Event_Path>   
</Event_Log>

Prérequis

Pour GitHub

Vous pouvez trouver davantage d’informations sur la méthode d’upload vers GitHub ici.

Pour Azure

  • Un groupe de ressource
  • Un compte de stockage
  • Un espace de fichier Azure
  • Une application enregistrée avec certificat

Vous pouvez trouver davantage d’informations sur la méthode d’upload vers Azure file ici.

Comment utiliser le script ?

Le script pour GitHub est nommé Collect_Device_Content_GitHub.ps1
Le script pour Azure est nommé Collect_Device_Content_Azure.ps1
Il faudra compléter le XML avec ce que vous souhaitez récupérer.

Implémentation 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 le contenu.

Création du contenu de notre appli

Créer un dossier Collect_intune_Device_Content
Copier le fichier Collect_intune_Device_Content.ps1
Copier le fichier Content_to_collect.xml
Copier le fichier Azure_infos.xml

Création du package

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

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 *