Skip to content

heaths/psmsi

Repository files navigation

Windows Installer PowerShell Module

Build Status: develop GitHub Release: Latest GitHub Releases: All PowerShell Gallery

Exposes Windows Installer functionality to PowerShell, providing means to query installed product and patch information, and to query views on packages.

Description

PowerShell is a powerful command shell that pipes objects - not just text. Because of this ability, you can string practically unrelated commands together in many different ways to work on different types of objects, all built on .NET. You can use all the properties and methods of those objects passed through the pipeline instead of being limited by the text sent to you as with traditional command shells.

This Windows Installer module for PowerShell provides cmdlets ("command-lets") - similar to functions - to query package states, patches registered and applied to products, and more. You can use it to query Windows Installer products and patches installed on your system.

get-msiproductinfo | where { $_.Name -like '*Visual Studio*' }

You can even use it to determine which products installed a particular file on your system.

get-msicomponentinfo `
    | where { $_.Path -like 'C:\Program Files\*\Common7\IDE\devenv.exe'} `
    | get-msiproductinfo

You can also install, repair, and uninstall products and patches complete with progress information, and warnings and errors direct to the pipeline.

install-msiproduct .\example.msi -destination (join-path $env:ProgramFiles Example)

Installation

Starting with 3.0, the easiest way to install the module with Windows 10 or the Windows Management Framework 5.0 or newer is by using the PackageManagement module.

# Specifying the provider is recommended, though may be "psgallery" on Windows 10 RTM.
install-package msi -provider PowerShellGet

You can also download the NuGet and Windows Installer packages directly from Releases.

License

The Windows Installer PowerShell module is licensed under the MIT License.