Photo by Markus Winkler / Unsplash
Récupérer les informations d’un fichier msi avec PowerShell

Récupérer les informations d’un fichier msi avec PowerShell

Published on 26 Jan 2023

Bastien Perez
Bastien Perez

Clap

Un fichier MSI (Microsoft System Installer) est un format de fichier propre à Microsoft utilisé pour installer des applications sur un ordinateur Windows.

Un fichier MSI contient des informations sur l'application à installer, telles que la version, le nom de l'éditeur, les fichiers nécessaires, les paramètres de configuration, etc.

Les informations du MSI sont parfois affichées dans Propriétés > Détails du fichier. Cependant, certains fichiers MSI ne contiennent aucune information sur une propriété.

Par exemple le fichier MSI d’installer d’AutomatedLab ne contient aucune information sur la version :

Les informations sur un fichier msi sont parfois vides

Afin d'obtenir ces informations, j'ai développé un petit script PowerShell pour récupérer les informations d'un fichier msi :

  • FileName : nom du fichier MSI
  • FilePath : chemin d'accès complet du fichier MSI
  • Length (MB) : taille du fichier MSI en mégaoctets
  • ProductVersion : version du produit (application) contenue dans le fichier MSI
  • ProductCode : GUID généré par Windows Installer pour identifier le produit installé
  • ProductName : nom du produit installé
  • Manufacturer : nom de l'éditeur du produit
  • ProductLanguage : code de la langue du produit
  • UpgradeCode : GUID représentant un ensemble de produits apparentés.

Il contient aussi les informations visibles dans les Details (SummaryInformation).

Si une propriété n'existe pas dans le msi, l'objet retournera tout de même cette propriété mais vide.

Le script est disponible sur mon GitHub.

Pour l'exécuter :

# Charger la fonction
. .\Get-MSIFileInformation.ps1

# Renseigner le fichier dans le paramètre -FilePath
Get-MSIFileInformation -FilePath C:\temp\AutomatedLab.msi

Le résultat est le suivant :

FileName        : AutomatedLab.msi
FilePath        : C:\temp\AutomatedLab.msi
Length(MB)      : 17,1645622253418
ProductVersion  : 5.46.0
ProductCode     : {E674472C-F8CA-411E-9A54-019AD2233AAC}
ProductName     : AutomatedLab
Manufacturer    : AutomatedLab Team
ProductLanguage : 1033 (English)
UpgradeCode     : {6A52C22C-74F0-4CC3-B723-B73A21DB9149}
Codepage        : 1252
Title           : Installation Database
Subject         : AutomatedLab Installer
Author          : AutomatedLabTeam
Keywords        : Installer
Comment         : AutomatedLab Modules Installer
Template        : x64;1033
LastAuthor      :
RevisionNumber  : {0936ECF3-4285-496C-8F60-31B0E08101B2}
EditTime        :
LastPrinted     :
CreationDate    : 24/11/2022 13:17:34
LastSaved       : 24/11/2022 13:17:34
PageCount       : 200

Comments

banner-Bastien Perez
Bastien Perez

Freelance Microsoft 365 - Active Directory - Modern Workplace

France