Skip to content

tsanjev/MSIInfo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

MSIInfo

A lightweight PowerShell module for extracting metadata from Windows Installer (.msi) files without requiring installation or external dependencies.

Features

  • 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

Installation

From PowerShell Gallery (Recommended)

Install-Module -Name MSIInfo -Scope CurrentUser

Manual Installation

  1. Clone the repository:

    git clone https://github.com/tsanjev/MSIInfo.git
  2. Copy to your PowerShell modules directory:

    Copy-Item -Path .\MSIInfo -Destination "$env:USERPROFILE\Documents\PowerShell\Modules\" -Recurse
  3. Or import directly:

    Import-Module .\MSIInfo\MSIInfo.psm1

Usage

Single MSI File

Get-MSIInfo -Path "C:\Installers\MyApp.msi"

Directory Scan

Process all MSI files in a folder:

Get-MSIInfo -Path "C:\Installers"

Pipeline Support

Get-ChildItem -Path "C:\Installers" -Filter *.msi | Get-MSIInfo

Example Output

File           : MyApp.msi
FullPath       : C:\Installers\MyApp.msi
ProductCode    : {12345678-ABCD-1234-ABCD-1234567890AB}
ProductName    : My Application
ProductVersion : 1.0.0
Platform       : x64

Export to CSV

Get-MSIInfo -Path "C:\Installers" | Export-Csv -Path "MSI_Inventory.csv" -NoTypeInformation

Requirements

  • Operating System: Windows (any version with Windows Installer)
  • PowerShell: Version 5.1 or higher
  • Dependencies: None (uses built-in Windows Installer COM API)

Function Reference

Get-MSIInfo

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

Module Structure

MSIInfo/
├── MSIInfo.psm1      # Main module code
├── MSIInfo.psd1      # Module manifest
└── README.md         # Documentation

Contributing

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

License

This project is licensed under the MIT License. See the LICENSE file for details.

Support

If you find this module useful, please:

  • ⭐ Star the repository on GitHub
  • 🐛 Report issues or suggest improvements
  • 📢 Share with others who might benefit

Author

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.

About

MSIInfo is a lightweight PowerShell module designed to extract detailed metadata from Windows Installer (`.msi`) files. It provides a simple command, `Get-MSIInfo`, that reads MSI properties without requiring installation or external tools.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors