A lightweight PowerShell module for extracting metadata from Windows Installer (.msi) files without requiring installation or external dependencies.
- Extract core MSI properties: ProductCode (GUID), ProductName, ProductVersion, and Platform (x86/x64)
- Flexible input: Process a single MSI file or scan entire directories
- Clean output: Returns structured PowerShell objects for easy filtering and formatting
- Cross-compatible: Works on Windows PowerShell 5.1+ and PowerShell 7+
- No dependencies: Uses built-in Windows Installer COM API
Install-Module -Name MSIInfo -Scope CurrentUser-
Clone the repository:
git clone https://github.com/tsanjev/MSIInfo.git
-
Copy to your PowerShell modules directory:
Copy-Item -Path .\MSIInfo -Destination "$env:USERPROFILE\Documents\PowerShell\Modules\" -Recurse
-
Or import directly:
Import-Module .\MSIInfo\MSIInfo.psm1
Get-MSIInfo -Path "C:\Installers\MyApp.msi"Process all MSI files in a folder:
Get-MSIInfo -Path "C:\Installers"Get-ChildItem -Path "C:\Installers" -Filter *.msi | Get-MSIInfoFile : MyApp.msi
FullPath : C:\Installers\MyApp.msi
ProductCode : {12345678-ABCD-1234-ABCD-1234567890AB}
ProductName : My Application
ProductVersion : 1.0.0
Platform : x64
Get-MSIInfo -Path "C:\Installers" | Export-Csv -Path "MSI_Inventory.csv" -NoTypeInformation- Operating System: Windows (any version with Windows Installer)
- PowerShell: Version 5.1 or higher
- Dependencies: None (uses built-in Windows Installer COM API)
Extracts metadata from Windows Installer files.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
Path |
String | Yes | Path to an MSI file or directory containing MSI files |
Returns: Custom PSObject with properties: File, FullPath, ProductCode, ProductName, ProductVersion, Platform
MSIInfo/
├── MSIInfo.psm1 # Main module code
├── MSIInfo.psd1 # Module manifest
└── README.md # Documentation
Contributions are welcome! Here are some ways you can help:
- Report bugs or request features by opening an issue
- Submit pull requests for bug fixes or enhancements
- Improve documentation
- Add support for additional MSI properties
Ideas for future enhancements:
- Additional MSI metadata fields (Manufacturer, InstallDate, etc.)
- Built-in CSV/JSON export options
- Performance optimization for large directories
- Recursive directory scanning option
This project is licensed under the MIT License. See the LICENSE file for details.
If you find this module useful, please:
- ⭐ Star the repository on GitHub
- 🐛 Report issues or suggest improvements
- 📢 Share with others who might benefit
Created and maintained by tsanjev
Note: This module requires Windows and uses the Windows Installer COM API (WindowsInstaller.Installer). It will not work on non-Windows platforms.