MSInfo32 : Un moyen facile de générer un rapport système Windows

Avez-vous eu du mal à créer un rapport d’informations système sur votre ordinateur ? Collecter des détails système peut sembler difficile, mais l’outil Informations système Microsoft (MSInfo32) facilite la collecte de toutes ces informations !

Dans cet article, vous apprendrez rapidement à générer et à visualiser des rapports d’informations système. Continuez à lire pour en savoir plus !

Prérequis

Pour ce tutoriel, vous pouvez utiliser n’importe quelle version de Windows 10. La lecture des rapports système à partir de la ligne de commande nécessite PowerShell. Ce tutoriel utilise Windows 10 version 21H1 build 19043 et PowerShell v7.1.

Visualisation d’un rapport d’informations système

La première étape pour récupérer des informations détaillées sur votre système consiste à ouvrir l’outil MSInfo32.

Pour trouver l’outil, recherchez MSInfo32 dans le Menu Démarrer, et assurez-vous de cliquer sur l’option Exécuter en tant qu’administrateur.

Lorsque MSInfo32 n’est pas exécuté en tant qu’administrateur, MSInfo32 ne peut pas mettre à jour correctement son cache d’informations internes, et certains pilotes peuvent apparaître comme arrêtés alors qu’ils ne le sont pas.

Dès que l’outil s’ouvre, il vous présentera un rapport, automatiquement généré. Vous verrez un résumé matériel de votre ordinateur dans la vue Résumé du système. Cette vue donne un aperçu global de la configuration du système. À gauche, vous verrez des catégories, qui détaillent davantage chaque section.

Viewing the System Summary in MSInfo32.

Enregistrement des rapports MSInfo32

Peut-être êtes-vous sur le point d’apporter des modifications matérielles à votre système et souhaiteriez-vous sauvegarder un rapport d’informations système pour une comparaison ultérieure ou pour un rapport. Avec MSInfo32, vous avez deux options pour sauvegarder ces informations : enregistrer et exporter. Vous en apprendrez davantage à leur sujet ci-dessous.

Vous pourriez cliquer sur Fichier → Enregistrer pour sauvegarder les informations sous forme de fichier NFO, également appelé fichier d’informations système. Le fichier NFO est un fichier basé sur XML qui peut être ultérieurement ouvert par l’outil MSInfo32 pour être visualisé dans le même format organisé.

Saving a System Information report as an NFO file.

Vous pouvez voir un exemple du fichier XML NFO ci-dessous.

<?xml version="1.0"?>
<MsInfo>
  <Metadata>
    <Version>8.0</Version>
    <CreationUTC>08/12/21 02:09:47</CreationUTC>
  </Metadata>
  <Category name="System Summary">
    <Data>
      <Item><![CDATA[OS Name]]></Item>
      <Value><![CDATA[Microsoft Windows 10 Education]]></Value>
    </Data>
    <Data>
      <Item><![CDATA[Version]]></Item>
      <Value><![CDATA[10.0.19043 Build 19043]]></Value>
    </Data>
    <Data>
      <Item><![CDATA[Other OS Description ]]></Item>
      <Value><![CDATA[Not Available]]></Value>
    </Data>
    <Data>
      <Item><![CDATA[OS Manufacturer]]></Item>
      <Value><![CDATA[Microsoft Corporation]]></Value>
    </Data>
    <Data>
      <Item><![CDATA[System Name]]></Item>
      <Value><![CDATA[ASPIREBOX]]></Value>
    </Data>
    <Data>
      <Item><![CDATA[System Manufacturer]]></Item>
      <Value><![CDATA[Acer]]></Value>
...

Vous pourriez également cliquer sur Fichier → Exporter pour sauvegarder les informations sous forme de fichier texte brut (TXT) qui pourrait être plus facile à lire mais ne peut pas être ouvert ultérieurement via l’outil d’informations système.

Saving a Syst

Et ci-dessous, vous verrez un exemple du format de fichier texte que MSInfo32 exporte.

System Information report written at: 08/11/21 23:33:55
System Name: ASPIREBOX
[System Summary]

Item	Value	
OS Name	Microsoft Windows 10 Education	
Version	10.0.19043 Build 19043	
Other OS Description 	Not Available	
OS Manufacturer	Microsoft Corporation	
System Name	ASPIREBOX	
System Manufacturer	Acer	
System Model	Aspire A514-54	
System Type	x64-based PC	
System SKU	0000000000000000	
Processor	11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz, 2419 Mhz, 4 Core(s), 8 Logical Processor(s)	
BIOS Version/Date	Insyde Corp. V1.12, 5/26/2021	
SMBIOS Version	3.3	
Embedded Controller Version	1.12	
BIOS Mode	UEFI	
BaseBoard Manufacturer	TGL	
BaseBoard Product	Lily_TL	
BaseBoard Version	V1.12	
Platform Role	Mobile	
Secure Boot State	On	
PCR7 Configuration	Elevation Required to View	
Windows Directory	C:\WINDOWS	
System Directory	C:\WINDOWS\system32	
Boot Device	\Device\HarddiskVolume1	
Locale	Brazil

Exportation de rapports scriptés à partir de MSInfo32

Maintenant que vous savez comment générer un rapport d’informations système à partir de MSInfo32, comment généreriez-vous un rapport NFO ou TXT à partir de la ligne de commande ? Peut-être êtes-vous en train de créer un script et avez-vous besoin d’un moyen rapide de récupérer des informations sur le matériel.

Ci-dessous, deux options différentes utilisant la ligne de commande pour générer à la fois un rapport NFO et TXT.

Vous pouvez trouver de nombreux articles obsolètes sur MSInfo32 où vous pouvez voir des options telles que /categories, /category, /pch et /showcategories. Ces options ne sont disponibles que sous Windows XP et ne sont pas disponibles sous Windows 10.

Cet premier exemple montre la génération d’un rapport TXT dans le même répertoire où la commande est exécutée, comme vous pouvez le voir dans la capture d’écran suivante.

MSInfo32 /report report.txt

Même lors de l’exécution à partir de la ligne de commande, une fenêtre s’ouvre où vous pouvez voir les informations système être rafraîchies avant la génération du rapport.

Exporting a System Information report as a TXT file on the command line. Notice the window that pop

Ce deuxième exemple montre la génération du rapport NFO, cette fois en spécifiant le répertoire où le rapport sera enregistré. Notez que le répertoire doit exister avant d’exécuter la commande. Sinon, elle échouera silencieusement.

MSInfo32 /nfo c:\ata\report.nfo

Bien que n’importe quelle extension de fichier fonctionne, étant donné que l’exportation du rapport d’informations système est un fichier NFO, l’option /nfo, la convention dicte l’utilisation de .nfo comme extension de rapport.

Lire les fichiers NFO via PowerShell

Tout au long de ce tutoriel, vous avez appris comment générer et exporter des rapports MSInfo32. Mais vous êtes venu voir Adam the Automator pour une raison, donc vous apprendrez à automatiser le processus.

Les rapports NFO enregistrés peuvent être ouverts et consultés dans MSInfo32 via le menu Fichier → Ouvrir. Le problème est le suivant : une interface graphique n’est pas idéale pour automatiser la récupération d’informations. Comme les fichiers NFO sont enregistrés au format XML, PowerShell peut analyser les fichiers XML et récupérer ces informations.

Pour lire le fichier de rapport XML, ouvrez une fenêtre PowerShell et exécutez Get-Content, comme indiqué dans la capture d’écran ci-dessous. Le [XML] permet à PowerShell de lire le texte XML et de le convertir en objets PowerShell. Enfin, enregistrez le résultat dans la variable $Report. La commande résultante peut être vue ci-dessous.

$Report = [XML](Get-Content -Path 'Report.nfo')
Output of the $Report variable.

Peut-être avez-vous besoin de récupérer la liste des services qui étaient en cours d’exécution au moment où le rapport a été généré. Étant donné que les rapports MSInfo32 contiennent cela, vous pouvez récupérer la liste via la méthode SelectNodes().

La méthode SelectNodes() utilise XPath. XPath est un langage de requête pour XML. L’élaboration de requêtes XPath complexes n’est pas couverte dans cet article.

<Category name="Services">
        <Data>
          <Display_Name><![CDATA[ACC Service]]></Display_Name>
          <Name><![CDATA[ACCSvc]]></Name>
          <State><![CDATA[Running]]></State>
          <Start_Mode><![CDATA[Auto]]></Start_Mode>
          <Service_Type><![CDATA[Own Process]]></Service_Type>
          <Path><![CDATA["c:\\program files (x86)\\acer\\care center\\accsvc.exe"]]></Path>
          <Error_Control><![CDATA[Normal]]></Error_Control>
          <Start_Name><![CDATA[LocalSystem]]></Start_Name>
          <Tag_ID><![CDATA[0]]></Tag_ID>
        </Data>
        <Data>
          <Display_Name><![CDATA[AllJoyn Router Service]]></Display_Name>
          <Name><![CDATA[AJRouter]]></Name>
          <State><![CDATA[Stopped]]></State>
          <Start_Mode><![CDATA[Manual]]></Start_Mode>
          <Service_Type><![CDATA[Share Process]]></Service_Type>
          <Path><![CDATA[c:\\windows\\system32\\svchost.exe -k localservicenetworkrestricted -p]]></Path>
          <Error_Control><![CDATA[Normal]]></Error_Control>
          <Start_Name><![CDATA[NT AUTHORITY\\LocalService]]></Start_Name>
          <Tag_ID><![CDATA[0]]></Tag_ID>
        </Data>
</Category>

La requête XPath '//Category[@name="Software Environment"]/Category[@name="Services"]/Data' servira d’exemple. Ses parties sont indiquées ci-dessous, afin que vous puissiez la comprendre et l’adapter à plusieurs scénarios.

  • //Category[@name="Software Environment"] – Renvoie tout nœud Category dans le document entier, indiqué par les doubles barres précédentes, avec le nom « Software Environment ».
  • /Category[@name="Services"] – Renvoie le nœud Category sous le nœud « Software Environment » précédemment retourné qui a le nom « Services ».
  • /Données – Renvoie le nœud enfant Données sous le nœud « Services » précédemment renvoyé.

L’exemple de structure ci-dessus présente le Rapport Système généré automatiquement que nous voyons lorsque MSInfo32 s’exécute. Vous pouvez l’adapter en construisant selon la section que vous voyez dans ceux-ci.

En passant la requête XPath //Category[@name="Software Environment"]/Category[@name="Services"]/Data à la méthode SelectNodes() sur l’objet $Report montré ci-dessous, tous les services Windows sont renvoyés sous forme de nœuds XML. Étant donné que les nœuds XML n’affichent pas une sortie attendue (le service Nom, AfficherNom et État), le code ci-dessous crée un PSCustomObject et formate la sortie pour s’adapter à l’écran avec Format-Table.

# La requête XPath ci-dessous changera en fonction des données que vous souhaitez extraire, elle ne suivra pas toujours cette convention
$Report.SelectNodes('//Category[@name="Software Environment"]/Category[@name="Services"]/Data') | ForEach-Object {
  [PSCustomObject]@{
    "Name"    = $PSItem.Name.innerText
    "Display" = $PSItem.Display_Name.innerText
    "State"   = $PSItem.State.innerText
  }
} | Format-Table -AutoSize
Selecting XML data from an NFO file.

Voici un exemple supplémentaire de comment utiliser une requête XPath et PowerShell pour trouver des informations sur la catégorie Affichage du Rapport Système. La requête XPath elle-même est très similaire aux précédentes, mais cherche cette fois-ci les catégories Composants et Affichage.

# La requête XPath ci-dessous changera en fonction des données que vous souhaitez extraire, elle ne suivra pas toujours cette convention.
$Report.SelectNodes('//Category[@name="Components"]/Category[@name="Display"]/Data') | ForEach-Object -Begin {
	# Créez une collection d'objets pour contenir une collection de périphériques.
	$Objects = [System.Collections.ArrayList]@()
	# L'objet temporaire utilisé pour contenir les noms et les valeurs d'un seul périphérique.
	$Object = @()
} -Process {
	# Si le nom de l'élément n'est pas vide, signifiant qu'un nouveau périphérique arrive, alors ajoutez le nom et la valeur au tableau temporaire $Object.
  # La raison pour laquelle cela ne peut pas être dans une table de hachage personnalisée est que le nom peut être dupliqué, ce qui n'est pas autorisé dans une table de hachage.
  If (-Not [String]::IsNullOrWhiteSpace($PSItem.Item.innerText)) {
    $Object += [PSCustomObject]@{
      "Name"  = $PSItem.Item.innerText
      "Value" = $PSItem.Value.innerText
    }
  } Else {
		# Une fois qu'un nom d'élément vide est rencontré, ajoutez ceci à la liste globale d'objets de périphériques.
    $Objects.Add($Object)
		# Réinitialisez l'objet de périphérique unique.
    $Object = @()
  }
} -End {
	# Envoyez uniquement la collection d'objets de périphérique plus loin dans le pipeline.
	$Objects
} | Format-Table -AutoSize
Results of the XML query against the Display Components list.

Conclusion

Dans cet article, vous avez appris comment MSInfo32 offre un moyen pratique de générer un rapport système complet pour un système local. Avec les fonctions de sauvegarde et d’exportation de MSInfo32, vous avez appris comment exporter le statut du système pour l’analyser au fil du temps et utiliser PowerShell pour analyser les informations disponibles.

Comment automatiser MSInfo32 sur plusieurs systèmes ?

Source:
https://adamtheautomator.com/msinfo32/