Cmdlets to Manage MSI Packages

by Jan 26, 2015

PowerShell 2.0 and later

Anyone who needs to manage MSI installer packages may benefit from an open source project found here: http://psmsi.codeplex.com/.

Simply download the PowerShell module – it comes as an MSI installer package itself. Make sure you unblock the MSI file before you install it (Unblock-File). Otherwise, Windows may refuse to install it.

Unfortunately, the module installs itself in a highly unusual location (AppData\Local\Apps\…), and extends $env:PSModulePath so PowerShell can find the module. This is why you need to restart PowerShell after module installation, because PowerShell will not pick up the changes to $env:PSModulePath.

This is how you can list the new MSI-related cmdlets:

 
PS> Get-Command -Module MSI

CommandType     Name                                               ModuleName
-----------     ----                                               ----------
Function        Get-MSIComponentState                              MSI
Function        Get-MSISharedComponentInfo                         MSI
Function        Install-MSIAdvertisedFeature                       MSI
Cmdlet          Add-MSISource                                      MSI       
Cmdlet          Clear-MSISource                                    MSI
Cmdlet          Edit-MSIPackage                                    MSI
Cmdlet          Export-MSIPatchXml                                 MSI
Cmdlet          Get-MSIComponentInfo                               MSI
Cmdlet          Get-MSIFeatureInfo                                 MSI
Cmdlet          Get-MSIFileHash                                    MSI
Cmdlet          Get-MSIFileType                                    MSI
Cmdlet          Get-MSILoggingPolicy                               MSI
Cmdlet          Get-MSIPatchInfo                                   MSI
Cmdlet          Get-MSIPatchSequence                               MSI
Cmdlet          Get-MSIProductInfo                                 MSI
Cmdlet          Get-MSIProperty                                    MSI
Cmdlet          Get-MSIRelatedProductInfo                          MSI
Cmdlet          Get-MSISource                                      MSI                            
Cmdlet          Get-MSISummaryInfo                                 MSI
Cmdlet          Get-MSITable                                       MSI            
Cmdlet          Install-MSIPatch                                   MSI                    
Cmdlet          Install-MSIProduct                                 MSI          
Cmdlet          Measure-MSIProduct                                 MSI                             
Cmdlet          Remove-MSILoggingPolicy                            MSI
Cmdlet          Remove-MSISource                                   MSI
Cmdlet          Repair-MSIProduct                                  MSI
Cmdlet          Set-MSILoggingPolicy                               MSI                  
Cmdlet          Test-MSIProduct                                    MSI
Cmdlet          Uninstall-MSIPatch                                 MSI
Cmdlet          Uninstall-MSIProduct                               MSI 
 

Twitter This Tip! ReTweet this Tip!