Microsoft.Tools.WindowsInstaller.PowerShell.dll-Help.xml
<?xml version="1.0" encoding="utf-8"?> <helpItems schema="maml" xmlns="http://msh" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:maml="http://schemas.microsoft.com/maml/2004/10"> <command:command> <command:details> <command:name>Add-MSISource</command:name> <maml:description> <maml:para>Adds a registered network source or URL from a product or patch.</maml:para> </maml:description> <command:verb>Add</command:verb> <command:noun>MSISource</command:noun> </command:details> <maml:description> <maml:para>Windows Installer products and patches can have zero or more registered locations that direct Windows Installer where to look for package source. This cmdlet will add a network source or URL to a product or patch and optionally return the remaining registered source locations through the pipeline.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Add-MSISource</maml:name> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode for a product or applied patch.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The directory or URL to register. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Whether to validate that directories exist before they are added to the source list.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Whether to return the remaining registered source through the pipeline.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>PatchCode</maml:name> <maml:description> <maml:para>The patch code for a patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The user context for a product or patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> <dev:defaultValue>All</dev:defaultValue> </command:parameter> <command:parameter aliases="User" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The user SID for a product or patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Add-MSISource</maml:name> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode for a product or applied patch.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="1"> <maml:name>Path</maml:name> <maml:description> <maml:para>The directory or URL to register. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Whether to validate that directories exist before they are added to the source list.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Whether to return the remaining registered source through the pipeline.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>PatchCode</maml:name> <maml:description> <maml:para>The patch code for a patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The user context for a product or patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> <dev:defaultValue>All</dev:defaultValue> </command:parameter> <command:parameter aliases="User" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The user SID for a product or patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The directory or URL to register. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Whether to validate that directories exist before they are added to the source list.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Whether to return the remaining registered source through the pipeline.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>PatchCode</maml:name> <maml:description> <maml:para>The patch code for a patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="1"> <maml:name>Path</maml:name> <maml:description> <maml:para>The directory or URL to register. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode for a product or applied patch.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The user context for a product or patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> <dev:defaultValue>All</dev:defaultValue> </command:parameter> <command:parameter aliases="User" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The user SID for a product or patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:parameters> <command:returnValues> <command:returnValue> <dev:type> <maml:name>Microsoft.Tools.WindowsInstaller.SourceInfo</maml:name> <maml:description> <maml:para>Source information for an installed product.</maml:para> </maml:description> </dev:type> </command:returnValue> <command:returnValue> <dev:type> <maml:name>Microsoft.Tools.WindowsInstaller.PatchSourceInfo</maml:name> <maml:description> <maml:para>Source information for an applied patch.</maml:para> </maml:description> </dev:type> </command:returnValue> </command:returnValues> <command:examples> <command:example> <maml:title>-------------- EXAMPLE 1 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>add-msisource '{707ABAE4-4DC5-478C-9D36-7CC5C1A85A3C}' 'C:\Package Cache\'</dev:code> <dev:remarks> <maml:para>Adds the C:\Package Cache source location from the specified product.</maml:para> <maml:para /> </dev:remarks> </command:example> </command:examples> <maml:relatedLinks> <maml:navigationLink> <maml:linkText>Clear-MSISource</maml:linkText> </maml:navigationLink> <maml:navigationLink> <maml:linkText>Get-MSISource</maml:linkText> </maml:navigationLink> <maml:navigationLink> <maml:linkText>Remove-MSISource</maml:linkText> </maml:navigationLink> </maml:relatedLinks> </command:command> <command:command> <command:details> <command:name>Clear-MSISource</command:name> <maml:description> <maml:para>Clears all registered network sources and URLs from a product or patch.</maml:para> </maml:description> <command:verb>Clear</command:verb> <command:noun>MSISource</command:noun> </command:details> <maml:description> <maml:para>Windows Installer products and patches can have zero or more registered locations that direct Windows Installer where to look for package source. This cmdlet will clear all network sources and URLs from a product or patch.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Clear-MSISource</maml:name> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode for a product or applied patch.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>PatchCode</maml:name> <maml:description> <maml:para>The patch code for a patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The user context for a product or patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> <dev:defaultValue>All</dev:defaultValue> </command:parameter> <command:parameter aliases="User" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The user SID for a product or patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>PatchCode</maml:name> <maml:description> <maml:para>The patch code for a patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode for a product or applied patch.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The user context for a product or patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> <dev:defaultValue>All</dev:defaultValue> </command:parameter> <command:parameter aliases="User" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The user SID for a product or patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:parameters> <command:returnValues> <command:returnValue> <dev:type> <maml:name>Microsoft.Tools.WindowsInstaller.SourceInfo</maml:name> <maml:description> <maml:para>Source information for an installed product.</maml:para> </maml:description> </dev:type> </command:returnValue> <command:returnValue> <dev:type> <maml:name>Microsoft.Tools.WindowsInstaller.PatchSourceInfo</maml:name> <maml:description> <maml:para>Source information for an applied patch.</maml:para> </maml:description> </dev:type> </command:returnValue> </command:returnValues> <command:examples> <command:example> <maml:title>-------------- EXAMPLE 1 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msiproductinfo '{707ABAE4-4DC5-478C-9D36-7CC5C1A85A3C}' | clear-msisource</dev:code> <dev:remarks> <maml:para>Clears all registered source from the specified product.</maml:para> <maml:para /> </dev:remarks> </command:example> </command:examples> <maml:relatedLinks> <maml:navigationLink> <maml:linkText>Add-MSISource</maml:linkText> </maml:navigationLink> <maml:navigationLink> <maml:linkText>Get-MSISource</maml:linkText> </maml:navigationLink> <maml:navigationLink> <maml:linkText>Remove-MSISource</maml:linkText> </maml:navigationLink> </maml:relatedLinks> </command:command> <command:command> <command:details> <command:name>Edit-MSIPackage</command:name> <maml:description> <maml:para>Opens an install package or patch in Orca or another registered editor.</maml:para> </maml:description> <command:verb>Edit</command:verb> <command:noun>MSIPackage</command:noun> </command:details> <maml:description> <maml:para>Orca can be installed from the Windows SDK. If installed, MSI and MSP packages can be opened in Orca. If Orca is not installed, any application registered with the "Edit" verb for .msi or .msp file extensions is used.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Edit-MSIPackage</maml:name> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="0"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to a package to open. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Wait</maml:name> <maml:description> <maml:para>Wait until the process is closed before opening another package.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Edit-MSIPackage</maml:name> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to a package to open. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Wait</maml:name> <maml:description> <maml:para>Wait until the process is closed before opening another package.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to a package to open. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="0"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to a package to open. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Wait</maml:name> <maml:description> <maml:para>Wait until the process is closed before opening another package.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> </command:parameters> <command:examples> <command:example> <maml:title>-------------- EXAMPLE 1 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-childitem -filter *.msi -recurse | edit-msipackage</dev:code> <dev:remarks> <maml:para>Opens all install packages in the current directory or subdirectories in separate instances of Orca.</maml:para> <maml:para /> </dev:remarks> </command:example> </command:examples> </command:command> <command:command> <command:details> <command:name>Export-MSIPatchXml</command:name> <maml:description> <maml:para>Exports an XML representation of applicability information from a patch package.</maml:para> </maml:description> <command:verb>Export</command:verb> <command:noun>MSIPatchXml</command:noun> </command:details> <maml:description> <maml:para>Windows Installer defines an XML schema that is representational of a patch package - specifically its applicability information. This allows administrators and bundle developers to not require downloading the patch package just to find out if it's applicable or even already installed.</maml:para> <maml:para /> <maml:para>This XML file can be passed to Get-MSIPatchSequence along with other XML files or patch packages.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Export-MSIPatchXml</maml:name> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to the patch package from which XML is exported.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="1"> <maml:name>FilePath</maml:name> <maml:description> <maml:para>The path to the output XML file.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Encoding</maml:name> <maml:description> <maml:para>The encoding to use for the output XML file.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">System.Text.Encoding</command:parameterValue> <dev:type> <maml:name>System.Text.Encoding</maml:name> </dev:type> <dev:defaultValue>UTF8</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Formatted</maml:name> <maml:description> <maml:para>Whether to indent the XML file.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Encoding</maml:name> <maml:description> <maml:para>The encoding to use for the output XML file.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">System.Text.Encoding</command:parameterValue> <dev:type> <maml:name>System.Text.Encoding</maml:name> </dev:type> <dev:defaultValue>UTF8</dev:defaultValue> </command:parameter> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="1"> <maml:name>FilePath</maml:name> <maml:description> <maml:para>The path to the output XML file.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Formatted</maml:name> <maml:description> <maml:para>Whether to indent the XML file.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to the patch package from which XML is exported.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:parameters> <command:examples> <command:example> <maml:title>-------------- EXAMPLE 1 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>export-msipatchxml .\example.msp .\example.xml -formatted</dev:code> <dev:remarks> <maml:para>Exports formatted XML from the example.msp patch package in the current directory.</maml:para> <maml:para /> </dev:remarks> </command:example> </command:examples> <maml:relatedLinks> <maml:navigationLink> <maml:linkText>Get-MSIPatchSequence</maml:linkText> </maml:navigationLink> </maml:relatedLinks> </command:command> <command:command> <command:details> <command:name>Get-MSIComponentInfo</command:name> <maml:description> <maml:para>Gets information about components registered to the current user and the machine.</maml:para> </maml:description> <command:verb>Get</command:verb> <command:noun>MSIComponentInfo</command:noun> </command:details> <maml:description> <maml:para>Gets information about all the components registered to the current user and to the machine. You can also limit the components to only those installed by a particular product.</maml:para> <maml:para /> <maml:para>The information includes the state of the component and the path all based on the product that installed it, since multiple products can install the same component even to different locations.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Get-MSIComponentInfo</maml:name> <command:parameter aliases="ComponentId" required="false" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>ComponentCode</maml:name> <maml:description> <maml:para>The component GUIDs to retrieve information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Get-MSIComponentInfo</maml:name> <command:parameter aliases="ComponentId" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>ComponentCode</maml:name> <maml:description> <maml:para>The component GUIDs to retrieve information.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="1"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode of the product that installed the components to retrieve information.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter aliases="ComponentId" required="false" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>ComponentCode</maml:name> <maml:description> <maml:para>The component GUIDs to retrieve information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="1"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode of the product that installed the components to retrieve information.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:parameters> <command:returnValues> <command:returnValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ComponentInstallation</maml:name> <maml:description> <maml:para>Information about the components installed or registered by one or multiple products.</maml:para> </maml:description> </dev:type> </command:returnValue> </command:returnValues> <command:examples> <command:example> <maml:title>-------------- EXAMPLE 1 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msicomponentinfo</dev:code> <dev:remarks> <maml:para>This command gets all components installed or registered to the current user or to the machine.</maml:para> <maml:para /> </dev:remarks> </command:example> <command:example> <maml:title>-------------- EXAMPLE 2 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msiproductinfo "{90120000-00BA-0409-0000-0000000FF1CE}" | get-msicomponentinfo -componentcode "{90120000-00BA-0409-0000-0E32E9F6E558}"</dev:code> <dev:remarks> <maml:para>This command gets information for the component "{90120000-00BA-0409-0000-0E32E9F6E558}" installed by the product "{90120000-00BA-0409-0000-0000000FF1CE}".</maml:para> <maml:para /> </dev:remarks> </command:example> </command:examples> <maml:relatedLinks> <maml:navigationLink> <maml:linkText>Get-MSIComponentState</maml:linkText> </maml:navigationLink> </maml:relatedLinks> </command:command> <command:command> <command:details> <command:name>Get-MSIComponentState</command:name> <maml:description> <maml:para>Gets the install state for all authored components for one or more products installed on the machine.</maml:para> </maml:description> <command:verb>Get</command:verb> <command:noun>MSIComponentState</command:noun> </command:details> <maml:description> <maml:para>Gets the install state for all components authored into one or more products. This includes all patches applied to the product. In addition to the information returned from Get-MSIComponentInfo, the authored component identifier from the Component table is attached along with a simple boolean property that determines if the component is installed locally or not.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Get-MSIComponentState</maml:name> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByValue)" position="0"> <maml:name>Product</maml:name> <maml:description> <maml:para>The products for which authored component state is retrieved.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Get-MSIComponentState</maml:name> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="0"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The installed ProductCodes that define the components for which state information is retrieved.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The context for registered products. This can be a combination of "Machine", "UserManaged", or "UserUnmanaged".</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> <dev:defaultValue>All</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The security identifier for a user for user-managed and user-unmanaged products.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByValue)" position="0"> <maml:name>Product</maml:name> <maml:description> <maml:para>The products for which authored component state is retrieved.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="0"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The installed ProductCodes that define the components for which state information is retrieved.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The context for registered products. This can be a combination of "Machine", "UserManaged", or "UserUnmanaged".</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> <dev:defaultValue>All</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The security identifier for a user for user-managed and user-unmanaged products.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:parameters> <command:inputTypes> <command:inputType> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ProductInstallation</maml:name> <maml:description> <maml:para>Products for which authored component state is retrieved.</maml:para> </maml:description> </dev:type> </command:inputType> </command:inputTypes> <command:returnValues> <command:returnValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ComponentInstallation#State</maml:name> <maml:description> <maml:para>State information about the components authored into one or more products and applied patches.</maml:para> </maml:description> </dev:type> </command:returnValue> </command:returnValues> <command:examples> <command:example> <maml:title>-------------- EXAMPLE 1 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msicomponentstate "{877EF582-78AF-4D84-888B-167FDC3BCC11}"</dev:code> <dev:remarks> <maml:para>Gets state information for all components authored into the product "{877EF582-78AF-4D84-888B-167FDC3BCC11}" and all applied patches.</maml:para> <maml:para /> </dev:remarks> </command:example> <command:example> <maml:title>-------------- EXAMPLE 2 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msiproductinfo -name *TEST* | get-msicomponentstate</dev:code> <dev:remarks> <maml:para>Gets state information for all components authored into any product where the ProductName matches *TEST*.</maml:para> <maml:para /> </dev:remarks> </command:example> </command:examples> <maml:relatedLinks> <maml:navigationLink> <maml:linkText>Get-MSIComponentInfo</maml:linkText> </maml:navigationLink> <maml:navigationLink> <maml:linkText>Get-MSIProductInfo</maml:linkText> </maml:navigationLink> </maml:relatedLinks> </command:command> <command:command> <command:details> <command:name>Get-MSIFeatureInfo</command:name> <maml:description> <maml:para>Gets information about features of an installed or advertised product.</maml:para> </maml:description> <command:verb>Get</command:verb> <command:noun>MSIFeatureInfo</command:noun> </command:details> <maml:description> <maml:para>A product must install or advertise one or more features. This cmdlet can query feature of a product or products to determine their state and optional usage data.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Get-MSIFeatureInfo</maml:name> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByValue)" position="0"> <maml:name>Product</maml:name> <maml:description> <maml:para>The ProductInstallation object that installed or advertised specified features.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Get-MSIFeatureInfo</maml:name> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode that installed or advertised specified features.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Name" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="1"> <maml:name>FeatureName</maml:name> <maml:description> <maml:para>The names of the features for which information is retrieved.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter aliases="Name" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="1"> <maml:name>FeatureName</maml:name> <maml:description> <maml:para>The names of the features for which information is retrieved.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByValue)" position="0"> <maml:name>Product</maml:name> <maml:description> <maml:para>The ProductInstallation object that installed or advertised specified features.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode that installed or advertised specified features.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:parameters> <command:inputTypes> <command:inputType> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ProductInstallation</maml:name> <maml:description> <maml:para>The product or products for which features are enumerated.</maml:para> </maml:description> </dev:type> </command:inputType> </command:inputTypes> <command:returnValues> <command:returnValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.FeatureInstallation</maml:name> <maml:description> <maml:para>Information about the features installed or advertised by one or multiple products.</maml:para> </maml:description> </dev:type> </command:returnValue> </command:returnValues> <command:examples> <command:example> <maml:title>-------------- EXAMPLE 1 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msiproductinfo "{90120000-00BA-0409-0000-0000000FF1CE}" | get-msifeatureinfo | format-table -view Usage</dev:code> <dev:remarks> <maml:para>Gets the usage information for all the features installed by the product "{90120000-00BA-0409-0000-0000000FF1CE}".</maml:para> <maml:para /> </dev:remarks> </command:example> <command:example> <maml:title>-------------- EXAMPLE 2 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msifeatureinfo "{90120000-00BA-0409-0000-0000000FF1CE}" "GrooveFilesIntl_1033"</dev:code> <dev:remarks> <maml:para>Gets state information for the feature "GrooveFilesIntl_1033" installed by product "{90120000-00BA-0409-0000-0000000FF1CE}".</maml:para> <maml:para /> </dev:remarks> </command:example> </command:examples> <maml:relatedLinks> <maml:navigationLink> <maml:linkText>Get-MSIProductInfo</maml:linkText> </maml:navigationLink> </maml:relatedLinks> </command:command> <command:command> <command:details> <command:name>Get-MSIFileHash</command:name> <maml:description> <maml:para>Gets a hash of a file in a Windows Installer-compatible format.</maml:para> </maml:description> <command:verb>Get</command:verb> <command:noun>MSIFileHash</command:noun> </command:details> <maml:description> <maml:para>Get-MSIFileHash returns a 128-bit file hash in 4 separate parts, compatible with columns in the MsiFileHash table in Windows Installer packages. All non-versioned files should contain this hash.</maml:para> <maml:para /> <maml:para>You can optionally add these HashPart1, HashPart2, HashPart3, and HashPart4 properties to FileSystem items.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Get-MSIFileHash</maml:name> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="0"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to the item or items which must resolve to a file system path. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Passes the item or items passed into this cmdlet through the pipeline with additional properties for the file hash.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Get-MSIFileHash</maml:name> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to the item or items which must resolve to a file system path. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Passes the item or items passed into this cmdlet through the pipeline with additional properties for the file hash.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to the item or items which must resolve to a file system path. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Passes the item or items passed into this cmdlet through the pipeline with additional properties for the file hash.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="0"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to the item or items which must resolve to a file system path. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> </command:parameters> <command:returnValues> <command:returnValue> <dev:type> <maml:name>Microsoft.Tools.WindowsInstaller.FileHash</maml:name> <maml:description> <maml:para>If -passthru is not specified, Get-MSIFileHash returns a FileHash object containing the file hash in 4 parts.</maml:para> </maml:description> </dev:type> </command:returnValue> <command:returnValue> <dev:type> <maml:name>System.IO.DirectoryInfo</maml:name> <maml:description> <maml:para>If -passthru is specified and the input object is a directory, the directory is returned.</maml:para> </maml:description> </dev:type> </command:returnValue> <command:returnValue> <dev:type> <maml:name>System.IO.FileInfo</maml:name> <maml:description> <maml:para>If -passthru is specified and the input object is a file, the file is returned.</maml:para> </maml:description> </dev:type> </command:returnValue> </command:returnValues> <command:examples> <command:example> <maml:title>-------------- EXAMPLE 1 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msifilehash -path * | format-table -auto</dev:code> <dev:remarks> <maml:para>This command outputs the file hash of every file in the current directory as a table.</maml:para> <maml:para /> </dev:remarks> </command:example> <command:example> <maml:title>-------------- EXAMPLE 2 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-childitem | where-object {$_.PSIsContainer -eq $False} | get-msifilehash -passthru | format-table Name, MSI* -auto</dev:code> <dev:remarks> <maml:para>This command outputs the name and hash parts of each file in the current directory.</maml:para> <maml:para /> </dev:remarks> </command:example> </command:examples> <maml:relatedLinks> <maml:navigationLink> <maml:linkText>Get-MSIFileType</maml:linkText> </maml:navigationLink> </maml:relatedLinks> </command:command> <command:command> <command:details> <command:name>Get-MSIFileType</command:name> <maml:description> <maml:para>Gets the Windows Installer file type.</maml:para> </maml:description> <command:verb>Get</command:verb> <command:noun>MSIFileType</command:noun> </command:details> <maml:description> <maml:para>Gets the Windows Installer file type for a given file or files.</maml:para> <maml:para /> <maml:para>You can optionally add this MSIFileType property to FileSystem items.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Get-MSIFileType</maml:name> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="0"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to the item or items which must resolve to a file system path. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Passes the item or items passed into this cmdlet through the pipeline with the additional property for the file type.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Get-MSIFileType</maml:name> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to the item or items which must resolve to a file system path. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Passes the item or items passed into this cmdlet through the pipeline with the additional property for the file type.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to the item or items which must resolve to a file system path. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Passes the item or items passed into this cmdlet through the pipeline with the additional property for the file type.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="0"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to the item or items which must resolve to a file system path. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> </command:parameters> <command:returnValues> <command:returnValue> <dev:type> <maml:name>string</maml:name> <maml:description> <maml:para>If -passthru is not specified, Get-MSIFileType returns a string object.</maml:para> </maml:description> </dev:type> </command:returnValue> <command:returnValue> <dev:type> <maml:name>System.IO.DirectoryInfo</maml:name> <maml:description> <maml:para>If -passthru is specified and the input object is a directory, the directory is returned.</maml:para> </maml:description> </dev:type> </command:returnValue> <command:returnValue> <dev:type> <maml:name>System.IO.FileInfo</maml:name> <maml:description> <maml:para>If -passthru is specified and the input object is a file, the file is returned.</maml:para> </maml:description> </dev:type> </command:returnValue> </command:returnValues> <command:examples> <command:example> <maml:title>-------------- EXAMPLE 1 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msifilehash -path $env:WINDIR\Installer</dev:code> <dev:remarks> <maml:para>This command outputs the file type of files in the Windows Installer cache directory.</maml:para> <maml:para /> </dev:remarks> </command:example> <command:example> <maml:title>-------------- EXAMPLE 2 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-childitem -path $env:WINDIR\Installer\* | where-object {$_.PSIsContainer -eq $False} | get-msifiletype -passthru | format-table Name, MSIFileType -auto</dev:code> <dev:remarks> <maml:para>This command outputs the Windows Installer file type for files in the Windows Installer cache directory.</maml:para> <maml:para /> </dev:remarks> </command:example> </command:examples> <maml:relatedLinks> <maml:navigationLink> <maml:linkText>Get-MSIFileHash</maml:linkText> </maml:navigationLink> </maml:relatedLinks> </command:command> <command:command> <command:details> <command:name>Get-MSILoggingPolicy</command:name> <maml:description> <maml:para>Gets the Windows Installer logging policy.</maml:para> </maml:description> <command:verb>Get</command:verb> <command:noun>MSILoggingPolicy</command:noun> </command:details> <maml:description> <maml:para>The Windows Installer logging policy determines whether logs are generated by default and how much information they contain. This cmdlet gets the current logging policy and can return the logging modes as a collection of strings or the raw string value from the registry.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Get-MSILoggingPolicy</maml:name> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Raw</maml:name> <maml:description> <maml:para>Returns the raw string value from the registry.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Raw</maml:name> <maml:description> <maml:para>Returns the raw string value from the registry.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> </command:parameters> <command:returnValues> <command:returnValue> <dev:type> <maml:name>string</maml:name> <maml:description> <maml:para>If -raw is specified and a logging policy set, the raw registry value is returned.</maml:para> </maml:description> </dev:type> </command:returnValue> <command:returnValue> <dev:type> <maml:name>string[]</maml:name> <maml:description> <maml:para>The default output type consisting of zero or more logging modes that are set in the registry.</maml:para> </maml:description> </dev:type> </command:returnValue> </command:returnValues> <maml:relatedLinks> <maml:navigationLink> <maml:linkText>Remove-MSILoggingPolicy</maml:linkText> </maml:navigationLink> <maml:navigationLink> <maml:linkText>Set-MSILoggingPolicy</maml:linkText> </maml:navigationLink> </maml:relatedLinks> </command:command> <command:command> <command:details> <command:name>Get-MSIPatchInfo</command:name> <maml:description> <maml:para>Gets patch information for registered patches.</maml:para> </maml:description> <command:verb>Get</command:verb> <command:noun>MSIPatchInfo</command:noun> </command:details> <maml:description> <maml:para>Gets patch information for a given patch or for all patches registered to a given product or products. You can get patch information for machine-registered patches, and patch information for both user-managed- and user-unmanaged-registered patches for the current or another user.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Get-MSIPatchInfo</maml:name> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>Specifies the ProductCode or ProductCodes to get patch information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="1"> <maml:name>PatchCode</maml:name> <maml:description> <maml:para>The patch code or patch codes to retrieve patch information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Everyone</maml:name> <maml:description> <maml:para>Whether to retrieve user-managed or user-unmanaged patches for everyone.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="true" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>Filter</maml:name> <maml:description> <maml:para>The state or states of patches to be retrieved. This can be a combination of "Applied", "Superseded", "Obsoleted", "Registered", or "All".</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.PatchStates</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.PatchStates</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The context for registered patches. This can be a combination of "Machine", "UserManaged", or "UserUnmanaged".</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> <dev:defaultValue>All</dev:defaultValue> </command:parameter> <command:parameter aliases="User" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The security identifier for a user for user-managed and user-unmanaged patches.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Everyone</maml:name> <maml:description> <maml:para>Whether to retrieve user-managed or user-unmanaged patches for everyone.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="true" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>Filter</maml:name> <maml:description> <maml:para>The state or states of patches to be retrieved. This can be a combination of "Applied", "Superseded", "Obsoleted", "Registered", or "All".</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.PatchStates</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.PatchStates</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="1"> <maml:name>PatchCode</maml:name> <maml:description> <maml:para>The patch code or patch codes to retrieve patch information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>Specifies the ProductCode or ProductCodes to get patch information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The context for registered patches. This can be a combination of "Machine", "UserManaged", or "UserUnmanaged".</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> <dev:defaultValue>All</dev:defaultValue> </command:parameter> <command:parameter aliases="User" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The security identifier for a user for user-managed and user-unmanaged patches.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:parameters> <command:returnValues> <command:returnValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.PatchInstallation</maml:name> <maml:description> <maml:para>Information about patches applied or registered to a product or products.</maml:para> </maml:description> </dev:type> </command:returnValue> </command:returnValues> <command:examples> <command:example> <maml:title>-------------- EXAMPLE 1 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msipatchinfo</dev:code> <dev:remarks> <maml:para>This command outputs a table of patch information for all applied patches on the machine.</maml:para> <maml:para /> </dev:remarks> </command:example> <command:example> <maml:title>-------------- EXAMPLE 2 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msipatchinfo -filter superseded | get-childitem</dev:code> <dev:remarks> <maml:para>This command gets file information for superseded patches on the machine.</maml:para> <maml:para /> </dev:remarks> </command:example> <command:example> <maml:title>-------------- EXAMPLE 3 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msiproductinfo | where-object {$_.Name -match "Office"} | get-msipatchinfo -filter all</dev:code> <dev:remarks> <maml:para>This command gets patch information for all patches applied to products with "Office" in the name.</maml:para> <maml:para /> </dev:remarks> </command:example> </command:examples> <maml:relatedLinks> <maml:navigationLink> <maml:linkText>Get-MSIProductInfo</maml:linkText> </maml:navigationLink> </maml:relatedLinks> </command:command> <command:command> <command:details> <command:name>Get-MSIPatchSequence</command:name> <maml:description> <maml:para>Given a list of patches or patch XML, outputs the sequence of applicable patches for a product or products.</maml:para> </maml:description> <command:verb>Get</command:verb> <command:noun>MSIPatchSequence</command:noun> </command:details> <maml:description> <maml:para>Patch packages or patch XML files can be specified along with a list of products. Each patch is added to a list and after all patches specified are processed, the sequence for all applicable patches is output for each product specified.</maml:para> <maml:para /> <maml:para>By default, the table format is used with a grouping for each product specified.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Get-MSIPatchSequence</maml:name> <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="0"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to a package to open. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="false" position="1"> <maml:name>PackagePath</maml:name> <maml:description> <maml:para>The path to a product package or packages for which the patch sequence is returned.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Get-MSIPatchSequence</maml:name> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="false" position="1"> <maml:name>PackagePath</maml:name> <maml:description> <maml:para>The path to a product package or packages for which the patch sequence is returned.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to a package to open. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Get-MSIPatchSequence</maml:name> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="false" position="1"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode or ProductCodes for products for which the patch sequence is returned.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to a package to open. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The user context for the product listed in the ProductCode parameter.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> </command:parameter> <command:parameter aliases="User" required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The user security identifier for product listed in the ProductCode parameter.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Get-MSIPatchSequence</maml:name> <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="0"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to a package to open. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="false" position="1"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode or ProductCodes for products for which the patch sequence is returned.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The user context for the product listed in the ProductCode parameter.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> </command:parameter> <command:parameter aliases="User" required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The user security identifier for product listed in the ProductCode parameter.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to a package to open. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="false" position="1"> <maml:name>PackagePath</maml:name> <maml:description> <maml:para>The path to a product package or packages for which the patch sequence is returned.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="0"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to a package to open. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="false" position="1"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode or ProductCodes for products for which the patch sequence is returned.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The user context for the product listed in the ProductCode parameter.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> </command:parameter> <command:parameter aliases="User" required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The user security identifier for product listed in the ProductCode parameter.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:parameters> <command:returnValues> <command:returnValue> <dev:type> <maml:name>Microsoft.Tools.WindowsInstaller.PatchSequence</maml:name> <maml:description> <maml:para>The sequence information for each applicable patch to a product or product package.</maml:para> </maml:description> </dev:type> </command:returnValue> </command:returnValues> </command:command> <command:command> <command:details> <command:name>Get-MSIProductInfo</command:name> <maml:description> <maml:para>Gets product information for registered products.</maml:para> </maml:description> <command:verb>Get</command:verb> <command:noun>MSIProductInfo</command:noun> </command:details> <maml:description> <maml:para>Gets product information for all per-machine, user-managed, and user-unmanaged products on the machine.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Get-MSIProductInfo</maml:name> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode or ProductCodes to retrieve product information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Everyone</maml:name> <maml:description> <maml:para>Whether to retrieve user-managed or user-unmanaged products for everyone.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The context for registered products. This can be a combination of "Machine", "UserManaged", or "UserUnmanaged".</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> <dev:defaultValue>All</dev:defaultValue> </command:parameter> <command:parameter aliases="User" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The security identifier for a user for user-managed and user-unmanaged products.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Get-MSIProductInfo</maml:name> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Everyone</maml:name> <maml:description> <maml:para>Whether to retrieve user-managed or user-unmanaged products for everyone.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="false" position="named"> <maml:name>Name</maml:name> <maml:description> <maml:para>The name of a product or products to retrieve. Wildcards are supported.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The context for registered products. This can be a combination of "Machine", "UserManaged", or "UserUnmanaged".</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> <dev:defaultValue>All</dev:defaultValue> </command:parameter> <command:parameter aliases="User" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The security identifier for a user for user-managed and user-unmanaged products.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Everyone</maml:name> <maml:description> <maml:para>Whether to retrieve user-managed or user-unmanaged products for everyone.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="false" position="named"> <maml:name>Name</maml:name> <maml:description> <maml:para>The name of a product or products to retrieve. Wildcards are supported.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode or ProductCodes to retrieve product information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The context for registered products. This can be a combination of "Machine", "UserManaged", or "UserUnmanaged".</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> <dev:defaultValue>All</dev:defaultValue> </command:parameter> <command:parameter aliases="User" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The security identifier for a user for user-managed and user-unmanaged products.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:parameters> <command:returnValues> <command:returnValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ProductInstallation</maml:name> <maml:description> <maml:para>Information about the installed or advertised product. To see just the advertised properties use the PSAdvertised property set; or, to see just the installed properties use the PSInstalled property set.</maml:para> </maml:description> </dev:type> </command:returnValue> </command:returnValues> <command:examples> <command:example> <maml:title>-------------- EXAMPLE 1 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msiproductinfo</dev:code> <dev:remarks> <maml:para>This command outputs product information for all registered products assigned to this machine.</maml:para> <maml:para /> </dev:remarks> </command:example> <command:example> <maml:title>-------------- EXAMPLE 2 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msiproductinfo | where-object {$_.Name -match "Visual Studio"}</dev:code> <dev:remarks> <maml:para>This command outputs all product information for products with "Visual Studio" in the name assigned to this machine.</maml:para> <maml:para /> </dev:remarks> </command:example> <command:example> <maml:title>-------------- EXAMPLE 3 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msiproductinfo -installcontext userunmanaged | where-object {$_.ProductState -eq "Installed"} | get-childitem</dev:code> <dev:remarks> <maml:para>This command gets file information for all installed user-unmanaged products.</maml:para> <maml:para /> </dev:remarks> </command:example> <command:example> <maml:title>-------------- EXAMPLE 4 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msiproductinfo "{1862162E-3BBC-448F-AA63-49F33152D54A}"</dev:code> <dev:remarks> <maml:para>This command gets product information for the given ProductCode.</maml:para> <maml:para /> </dev:remarks> </command:example> </command:examples> <maml:relatedLinks> <maml:navigationLink> <maml:linkText>Get-MSIPatchInfo</maml:linkText> </maml:navigationLink> <maml:navigationLink> <maml:linkText>Get-MSIRelatedProductInfo</maml:linkText> </maml:navigationLink> </maml:relatedLinks> </command:command> <command:command> <command:details> <command:name>Get-MSIProperty</command:name> <maml:description> <maml:para>Gets properties from a product or patch package.</maml:para> </maml:description> <command:verb>Get</command:verb> <command:noun>MSIProperty</command:noun> </command:details> <maml:description> <maml:para>Selects all or matching properties from a product or patch package and either returns them to the pipeline or attaches them to a file object for a product or patch package if -PassThru is specified. When propertie are attached to a file object you can select them all using the "MSIProperties" property set.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Get-MSIProperty</maml:name> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="false" position="0"> <maml:name>Property</maml:name> <maml:description> <maml:para>Optional list of property names to select. Wildcard are permitted.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="1"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to a product or patch package to open. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Whether to pass the file object back to the pipeline with selected properties attached.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="false" position="named"> <maml:name>Patch</maml:name> <maml:description> <maml:para>The path to a patch package to apply to the product package. Multiple patches are applied in authored sequence order.</maml:para> <maml:para /> <maml:para>Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="false" position="named"> <maml:name>Transform</maml:name> <maml:description> <maml:para>The path to a transform to apply to the product package.</maml:para> <maml:para /> <maml:para>Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Get-MSIProperty</maml:name> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="false" position="0"> <maml:name>Property</maml:name> <maml:description> <maml:para>Optional list of property names to select. Wildcard are permitted.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to a product or patch package to open. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Whether to pass the file object back to the pipeline with selected properties attached.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="false" position="named"> <maml:name>Patch</maml:name> <maml:description> <maml:para>The path to a patch package to apply to the product package. Multiple patches are applied in authored sequence order.</maml:para> <maml:para /> <maml:para>Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="false" position="named"> <maml:name>Transform</maml:name> <maml:description> <maml:para>The path to a transform to apply to the product package.</maml:para> <maml:para /> <maml:para>Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to a product or patch package to open. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Whether to pass the file object back to the pipeline with selected properties attached.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="false" position="named"> <maml:name>Patch</maml:name> <maml:description> <maml:para>The path to a patch package to apply to the product package. Multiple patches are applied in authored sequence order.</maml:para> <maml:para /> <maml:para>Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="1"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to a product or patch package to open. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="false" position="0"> <maml:name>Property</maml:name> <maml:description> <maml:para>Optional list of property names to select. Wildcard are permitted.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="false" position="named"> <maml:name>Transform</maml:name> <maml:description> <maml:para>The path to a transform to apply to the product package.</maml:para> <maml:para /> <maml:para>Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> </command:parameters> <command:returnValues> <command:returnValue> <dev:type> <maml:name>Microsoft.Tools.WindowsInstaller.Record</maml:name> <maml:description> <maml:para>The selected properties from the product or patch package.</maml:para> </maml:description> </dev:type> </command:returnValue> <command:returnValue> <dev:type> <maml:name>System.IO.FileInfo</maml:name> <maml:description> <maml:para>The original file object with selected properties attached and referenced by the "MSIProperties" property set.</maml:para> </maml:description> </dev:type> </command:returnValue> </command:returnValues> <command:examples> <command:example> <maml:title>-------------- EXAMPLE 1 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msiproperty Product*, UpgradeCode -path example.msi</dev:code> <dev:remarks> <maml:para>Gets the identifying properties from the example.msi product package.</maml:para> <maml:para /> </dev:remarks> </command:example> <command:example> <maml:title>-------------- EXAMPLE 2 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-childitem -filter *.msi | get-msiproperty -passthru | select Name, MSIProperties</dev:code> <dev:remarks> <maml:para>Attaches all properties from each product package and shows them all along with the file name.</maml:para> <maml:para /> </dev:remarks> </command:example> </command:examples> <maml:relatedLinks> <maml:navigationLink> <maml:linkText>Get-MSITable</maml:linkText> </maml:navigationLink> </maml:relatedLinks> </command:command> <command:command> <command:details> <command:name>Get-MSIRelatedProductInfo</command:name> <maml:description> <maml:para>Gets product information for related products.</maml:para> </maml:description> <command:verb>Get</command:verb> <command:noun>MSIRelatedProductInfo</command:noun> </command:details> <maml:description> <maml:para>Gets product information for related products based on an UpgradeCode.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Get-MSIRelatedProductInfo</maml:name> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>UpgradeCode</maml:name> <maml:description> <maml:para>The UpgradeCode for related products.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>UpgradeCode</maml:name> <maml:description> <maml:para>The UpgradeCode for related products.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> </command:parameters> <command:returnValues> <command:returnValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ProductInstallation</maml:name> <maml:description> <maml:para>Information about the installed or advertised product. To see just the installed properties use the PSInstalled property set.</maml:para> </maml:description> </dev:type> </command:returnValue> </command:returnValues> <command:examples> <command:example> <maml:title>-------------- EXAMPLE 1 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msirelatedproductinfo "{B4160C68-1EA5-458F-B1EA-E69B41E44007}"</dev:code> <dev:remarks> <maml:para>This command gets all related products based on their UpgradeCode.</maml:para> <maml:para /> </dev:remarks> </command:example> </command:examples> <maml:relatedLinks> <maml:navigationLink> <maml:linkText>Get-MSIProductInfo</maml:linkText> </maml:navigationLink> </maml:relatedLinks> </command:command> <command:command> <command:details> <command:name>Get-MSISharedComponentInfo</command:name> <maml:description> <maml:para>Gets information about shared components installed or registered for the current user or the machine.</maml:para> </maml:description> <command:verb>Get</command:verb> <command:noun>MSISharedComponentInfo</command:noun> </command:details> <maml:description> <maml:para>Shared components are component which are installed to the same directory by one or more products. This cmdlet gets information about all or specified shared components installed for the current user or the machine.</maml:para> <maml:para /> <maml:para>The output is already sorted by ComponentCode then ProductCode.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Get-MSISharedComponentInfo</maml:name> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="false" position="0"> <maml:name>ComponentCode</maml:name> <maml:description> <maml:para>The component GUIDs to retrieve information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="1"> <maml:name>Count</maml:name> <maml:description> <maml:para>The minimum number count for shared components returned. The absolute minimum is 2.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Int32</command:parameterValue> <dev:type> <maml:name>Int32</maml:name> </dev:type> <dev:defaultValue>2</dev:defaultValue> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="false" position="0"> <maml:name>ComponentCode</maml:name> <maml:description> <maml:para>The component GUIDs to retrieve information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="1"> <maml:name>Count</maml:name> <maml:description> <maml:para>The minimum number count for shared components returned. The absolute minimum is 2.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Int32</command:parameterValue> <dev:type> <maml:name>Int32</maml:name> </dev:type> <dev:defaultValue>2</dev:defaultValue> </command:parameter> </command:parameters> <command:returnValues> <command:returnValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ComponentInstallation</maml:name> <maml:description> <maml:para>Information about the shared components installed or registered by one or more products.</maml:para> </maml:description> </dev:type> </command:returnValue> </command:returnValues> <command:examples> <command:example> <maml:title>-------------- EXAMPLE 1 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msisharedcomponentinfo -count 4 | format-table -view Clients</dev:code> <dev:remarks> <maml:para>Gets shared components installed by at least 4 products (or features) and displays them in a table grouped by ComponentCode.</maml:para> <maml:para /> </dev:remarks> </command:example> </command:examples> <maml:relatedLinks> <maml:navigationLink> <maml:linkText>Get-MSIComponentInfo</maml:linkText> </maml:navigationLink> </maml:relatedLinks> </command:command> <command:command> <command:details> <command:name>Get-MSISource</command:name> <maml:description> <maml:para>Gets the registered network source or URLs for a product or patch.</maml:para> </maml:description> <command:verb>Get</command:verb> <command:noun>MSISource</command:noun> </command:details> <maml:description> <maml:para>Windows Installer products and patches can have zero or more registered locations that direct Windows Installer where to look for package source. This cmdlet will enumerate those locations registered to a product or patch.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Get-MSISource</maml:name> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode for a product or applied patch.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>PatchCode</maml:name> <maml:description> <maml:para>The patch code for a patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The user context for a product or patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> <dev:defaultValue>All</dev:defaultValue> </command:parameter> <command:parameter aliases="User" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The user SID for a product or patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>PatchCode</maml:name> <maml:description> <maml:para>The patch code for a patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode for a product or applied patch.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The user context for a product or patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> <dev:defaultValue>All</dev:defaultValue> </command:parameter> <command:parameter aliases="User" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The user SID for a product or patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:parameters> <command:returnValues> <command:returnValue> <dev:type> <maml:name>Microsoft.Tools.WindowsInstaller.SourceInfo</maml:name> <maml:description> <maml:para>Source information for an installed product.</maml:para> </maml:description> </dev:type> </command:returnValue> <command:returnValue> <dev:type> <maml:name>Microsoft.Tools.WindowsInstaller.PatchSourceInfo</maml:name> <maml:description> <maml:para>Source information for an applied patch.</maml:para> </maml:description> </dev:type> </command:returnValue> </command:returnValues> <command:examples> <command:example> <maml:title>-------------- EXAMPLE 1 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msiproductinfo | get-msisource</dev:code> <dev:remarks> <maml:para>Gets the registered source for all installed products on the machine.</maml:para> <maml:para /> </dev:remarks> </command:example> </command:examples> <maml:relatedLinks> <maml:navigationLink> <maml:linkText>Add-MSISource</maml:linkText> </maml:navigationLink> <maml:navigationLink> <maml:linkText>Clear-MSISource</maml:linkText> </maml:navigationLink> <maml:navigationLink> <maml:linkText>Remove-MSISource</maml:linkText> </maml:navigationLink> </maml:relatedLinks> </command:command> <command:command> <command:details> <command:name>Get-MSISummaryInfo</command:name> <maml:description> <maml:para>Gets the summary information from a product or patch package, or from a transform.</maml:para> </maml:description> <command:verb>Get</command:verb> <command:noun>MSISummaryInfo</command:noun> </command:details> <maml:description> <maml:para>The summary information stream is used by Windows Installer to determine applicability, version requirements, and more. Use this command to view the summary information for a product or patch package, or a transform. The properties returned are adapted for each file type.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Get-MSISummaryInfo</maml:name> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="0"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to a package or transform to open. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Transforms" required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>IncludeTransforms</maml:name> <maml:description> <maml:para>Whether to enumerate the transforms within a patch package.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Get-MSISummaryInfo</maml:name> <command:parameter aliases="Transforms" required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>IncludeTransforms</maml:name> <maml:description> <maml:para>Whether to enumerate the transforms within a patch package.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to a package or transform to open. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter aliases="Transforms" required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>IncludeTransforms</maml:name> <maml:description> <maml:para>Whether to enumerate the transforms within a patch package.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to a package or transform to open. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="0"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to a package or transform to open. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> </command:parameters> <command:returnValues> <command:returnValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.Package.TransformInfo</maml:name> <maml:description> <maml:para>Summary information for a transform within a patch package.</maml:para> </maml:description> </dev:type> </command:returnValue> <command:returnValue> <dev:type> <maml:name>Microsoft.Tools.WindowsInstaller.SummaryInfo</maml:name> <maml:description> <maml:para>Summary information for a product or patch package, or a transform.</maml:para> </maml:description> </dev:type> </command:returnValue> </command:returnValues> <command:examples> <command:example> <maml:title>-------------- EXAMPLE 1 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-childitem -filter *.ms* | get-msisummaryinfo</dev:code> <dev:remarks> <maml:para>Gets summary information for any file matching *.ms*, including .msi, .msp, and .mst packages.</maml:para> <maml:para /> </dev:remarks> </command:example> <command:example> <maml:title>-------------- EXAMPLE 2 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msisummaryinfo *.msp -includetransforms</dev:code> <dev:remarks> <maml:para>Gets the patch and embedded transform summary information.</maml:para> <maml:para /> </dev:remarks> </command:example> </command:examples> </command:command> <command:command> <command:details> <command:name>Get-MSITable</command:name> <maml:description> <maml:para>Selects records from a table or custom query from a product or patch package.</maml:para> </maml:description> <command:verb>Get</command:verb> <command:noun>MSITable</command:noun> </command:details> <maml:description> <maml:para>You can query all records from a table or records matching a custom query from a product or patch package. The Windows Installer SDK has more information about custom queries, since the SQL-like syntax is rather constrained.</maml:para> <maml:para /> <maml:para>When no table or query is provided all tables from the package are displayed. Specifying a patch or transform will cause tables added by the patch or transform to be displayed, along with the operation performed on that table by the patch or transform in the MSIOperation property.</maml:para> <maml:para /> <maml:para>Records are returned with properties matching column names. If records are selected from a single table, the table name is also part of the type name queryable from the PSTypeNames object property. If the column name is prefixed with the table name - required to disambiguate names, or optional otherwise - a property is returned as typed in the original query string. Note that Windows PowerShell allows periods in property names but may require in some scenarios that a property name with periods is contained in quotes, like 'File.Attributes'.</maml:para> <maml:para /> <maml:para>For attribute columns in standard Windows Installer tables, you may also query for specific attribute values by specifying a special property name on the end of the attribute column name, like 'File.Attributes'.HasVital, to query for any columns that have the attribute value set. You can define an $MsiAttributeColumnFormat variable to control the display format of attribute columns, though the underlying value will not be changed. Run 'help about_MSI' for more information.</maml:para> <maml:para /> <maml:para>Note that patch packages do not typically have more than a couple of tables. The patch has to be applied to a product package to view any changes it has made. When applying a patch or transforms, records will contain an operation performed on the record by the patch or transform in the MSIOperation property.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Get-MSITable</maml:name> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>Table</maml:name> <maml:description> <maml:para>The table from which all records are selected. If no table name is provided all tables in the database are displayed.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="1"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to a product package to open. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>Patch</maml:name> <maml:description> <maml:para>The path to a patch package to apply to the product package. Multiple patches are applied in authored sequence order.</maml:para> <maml:para /> <maml:para>Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>Transform</maml:name> <maml:description> <maml:para>The path to a transform to apply to the product package.</maml:para> <maml:para /> <maml:para>Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Get-MSITable</maml:name> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByValue)" position="1"> <maml:name>Product</maml:name> <maml:description> <maml:para>An installed product to query.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>IgnoreMachineState</maml:name> <maml:description> <maml:para>Whether to apply any patches current installed to the product.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> <dev:defaultValue>false</dev:defaultValue> </command:parameter> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Query</maml:name> <maml:description> <maml:para>A custom query for which records are selected. Ambiguous column names must be prefixed with the table name to which they belong.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Get-MSITable</maml:name> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>Table</maml:name> <maml:description> <maml:para>The table from which all records are selected. If no table name is provided all tables in the database are displayed.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByValue)" position="1"> <maml:name>Product</maml:name> <maml:description> <maml:para>An installed product to query.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>IgnoreMachineState</maml:name> <maml:description> <maml:para>Whether to apply any patches current installed to the product.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> <dev:defaultValue>false</dev:defaultValue> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Get-MSITable</maml:name> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to a product package to open. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>Patch</maml:name> <maml:description> <maml:para>The path to a patch package to apply to the product package. Multiple patches are applied in authored sequence order.</maml:para> <maml:para /> <maml:para>Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Query</maml:name> <maml:description> <maml:para>A custom query for which records are selected. Ambiguous column names must be prefixed with the table name to which they belong.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>Transform</maml:name> <maml:description> <maml:para>The path to a transform to apply to the product package.</maml:para> <maml:para /> <maml:para>Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Get-MSITable</maml:name> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>Table</maml:name> <maml:description> <maml:para>The table from which all records are selected. If no table name is provided all tables in the database are displayed.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to a product package to open. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>Patch</maml:name> <maml:description> <maml:para>The path to a patch package to apply to the product package. Multiple patches are applied in authored sequence order.</maml:para> <maml:para /> <maml:para>Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>Transform</maml:name> <maml:description> <maml:para>The path to a transform to apply to the product package.</maml:para> <maml:para /> <maml:para>Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Get-MSITable</maml:name> <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="1"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to a product package to open. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>Patch</maml:name> <maml:description> <maml:para>The path to a patch package to apply to the product package. Multiple patches are applied in authored sequence order.</maml:para> <maml:para /> <maml:para>Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Query</maml:name> <maml:description> <maml:para>A custom query for which records are selected. Ambiguous column names must be prefixed with the table name to which they belong.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>Transform</maml:name> <maml:description> <maml:para>The path to a transform to apply to the product package.</maml:para> <maml:para /> <maml:para>Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>IgnoreMachineState</maml:name> <maml:description> <maml:para>Whether to apply any patches current installed to the product.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> <dev:defaultValue>false</dev:defaultValue> </command:parameter> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to a product package to open. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>Patch</maml:name> <maml:description> <maml:para>The path to a patch package to apply to the product package. Multiple patches are applied in authored sequence order.</maml:para> <maml:para /> <maml:para>Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="1"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to a product package to open. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByValue)" position="1"> <maml:name>Product</maml:name> <maml:description> <maml:para>An installed product to query.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Query</maml:name> <maml:description> <maml:para>A custom query for which records are selected. Ambiguous column names must be prefixed with the table name to which they belong.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>Table</maml:name> <maml:description> <maml:para>The table from which all records are selected. If no table name is provided all tables in the database are displayed.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>Transform</maml:name> <maml:description> <maml:para>The path to a transform to apply to the product package.</maml:para> <maml:para /> <maml:para>Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> </command:parameters> <command:inputTypes> <command:inputType> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ProductInstallation</maml:name> <maml:description> <maml:para>An existing product to query. By default any patches already applied to the product are applied to the database.</maml:para> </maml:description> </dev:type> </command:inputType> </command:inputTypes> <command:returnValues> <command:returnValue> <dev:type> <maml:name>Microsoft.Tools.WindowsInstaller.Record</maml:name> <maml:description> <maml:para>Selected records for a table or custom query where properties match column names.</maml:para> </maml:description> </dev:type> </command:returnValue> <command:returnValue> <dev:type> <maml:name>Microsoft.Tools.WindowsInstaller.TableInfo</maml:name> <maml:description> <maml:para>Information about a table contained in the database or added by a patch or transform.</maml:para> </maml:description> </dev:type> </command:returnValue> </command:returnValues> <command:examples> <command:example> <maml:title>-------------- EXAMPLE 1 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msitable .\example.msi -table Property</dev:code> <dev:remarks> <maml:para>Gets all records from the Property table.</maml:para> <maml:para /> </dev:remarks> </command:example> <command:example> <maml:title>-------------- EXAMPLE 2 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>$productCode = get-msitable .\example.msi -table Property | where-object { $_.Property -eq "ProductCode" } | select-object -expand Value</dev:code> <dev:remarks> <maml:para>Selects just the ProductCode property from the example.msi package and assigns the value to a variable.</maml:para> <maml:para /> </dev:remarks> </command:example> <command:example> <maml:title>-------------- EXAMPLE 3 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-childitem -filter *.msi | get-msitable -query "SELECT ComponentId, FileName, FileSize FROM Component, File WHERE Component_ = Component"</dev:code> <dev:remarks> <maml:para>Selects the component GUID, file name, and file size for all files in all packages in the current directory.</maml:para> <maml:para /> </dev:remarks> </command:example> <command:example> <maml:title>-------------- EXAMPLE 4 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msitable .\example.msi -query "SELECT ComponentId, FileName, File.Attributes FROM Component, File WHERE Component_ = Component" | where-object { $_.'File.Attributes'.HasVital }</dev:code> <dev:remarks> <maml:para>Selects all vital files and displays the component GUID, file name, and all file attribtes from the example.msi package.</maml:para> <maml:para /> <maml:para>Note that in the query filter the 'File.Attributes' column is contained in quotes; otherwise, Windows PowerShell will attempt to filter based on an Attributes property of a File property of the current pipeline object. The 'File.Attributes' column is contained in quotes in the original query because the Component table also contains a column named Attributes. Windows Installer requires that you disambiguate column names.</maml:para> <maml:para /> </dev:remarks> </command:example> <command:example> <maml:title>-------------- EXAMPLE 5 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msitable .\example.msi -patch .\example.msp | get-msitable | where-object { $_.MSIOperation -ne 'None' }</dev:code> <dev:remarks> <maml:para>Gets all records in the example.msi package added or modified by the example.msp patch package.</maml:para> <maml:para /> </dev:remarks> </command:example> <command:example> <maml:title>-------------- EXAMPLE 6 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msiproductinfo '{877EF582-78AF-4D84-888B-167FDC3BCC11}' | get-msitable -table Property</dev:code> <dev:remarks> <maml:para>Selects records from the installed product along with any patches currently installed.</maml:para> <maml:para /> </dev:remarks> </command:example> </command:examples> <maml:relatedLinks> <maml:navigationLink> <maml:linkText>Get-MSIProductInfo</maml:linkText> </maml:navigationLink> <maml:navigationLink> <maml:linkText>Get-MSIProperty</maml:linkText> </maml:navigationLink> </maml:relatedLinks> </command:command> <command:command> <command:details> <command:name>Install-MSIAdvertisedFeature</command:name> <maml:description> <maml:para>Installs advertised features.</maml:para> </maml:description> <command:verb>Install</command:verb> <command:noun>MSIAdvertisedFeature</command:noun> </command:details> <maml:description> <maml:para>Some or all features can be advertised for a product. This may be by design or incidental if certain patching problems occur. You can use this cmdlet to to install some or all advertise features for some or all products.</maml:para> <maml:para /> <maml:para>You can also scan for all advertised features using the -WhatIf parameter to see what would be done to your system without performing those operations. Use -Confirm if you want to approve the operation to each product.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Install-MSIAdvertisedFeature</maml:name> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>FeatureName</maml:name> <maml:description> <maml:para>One or more specific features to install. Feature names are case-sensitive.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter aliases="cf" required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Confirm</maml:name> <maml:description> <maml:para>Confirm installing advertised features for each product.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Perform each operation without confirmation.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>One or more ProductCodes to limit which products are scanned for advertised features.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName, FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional properties to pass to the installation operation.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter aliases="wi" required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>WhatIf</maml:name> <maml:description> <maml:para>Show what operations would be performed without actually performing them.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Install-MSIAdvertisedFeature</maml:name> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>FeatureName</maml:name> <maml:description> <maml:para>One or more specific features to install. Feature names are case-sensitive.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter aliases="cf" required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Confirm</maml:name> <maml:description> <maml:para>Confirm installing advertised features for each product.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Perform each operation without confirmation.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByValue)" position="named"> <maml:name>Product</maml:name> <maml:description> <maml:para>One or more products passed through the pipeline to limit which products are scanned for advertised features.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName, FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional properties to pass to the installation operation.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter aliases="wi" required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>WhatIf</maml:name> <maml:description> <maml:para>Show what operations would be performed without actually performing them.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter aliases="cf" required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Confirm</maml:name> <maml:description> <maml:para>Confirm installing advertised features for each product.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>FeatureName</maml:name> <maml:description> <maml:para>One or more specific features to install. Feature names are case-sensitive.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Perform each operation without confirmation.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByValue)" position="named"> <maml:name>Product</maml:name> <maml:description> <maml:para>One or more products passed through the pipeline to limit which products are scanned for advertised features.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>One or more ProductCodes to limit which products are scanned for advertised features.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName, FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional properties to pass to the installation operation.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter aliases="wi" required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>WhatIf</maml:name> <maml:description> <maml:para>Show what operations would be performed without actually performing them.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> </command:parameters> <command:inputTypes> <command:inputType> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ProductInstallation</maml:name> <maml:description> <maml:para>An existing product for which advertised features should be installed.</maml:para> </maml:description> </dev:type> </command:inputType> </command:inputTypes> <command:examples> <command:example> <maml:title>-------------- EXAMPLE 1 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>install-msiadvertisedfeature -whatif</dev:code> <dev:remarks> <maml:para>Scans all features in all products for advertised features and reports what operation would be performed.</maml:para> <maml:para /> </dev:remarks> </command:example> <command:example> <maml:title>-------------- EXAMPLE 2 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msiproductinfo '{12341234-1234-1234-1234-123412341234}' | install-msiadvertisedfeature Complete</dev:code> <dev:remarks> <maml:para>Installs the 'Complete' feature for the specified product.</maml:para> <maml:para /> </dev:remarks> </command:example> </command:examples> <maml:relatedLinks> <maml:navigationLink> <maml:linkText>Get-MSIProductInfo</maml:linkText> </maml:navigationLink> <maml:navigationLink> <maml:linkText>Install-MSIProduct</maml:linkText> </maml:navigationLink> </maml:relatedLinks> </command:command> <command:command> <command:details> <command:name>Install-MSIPatch</command:name> <maml:description> <maml:para>Installs a patch package or packages for all or only specified products.</maml:para> </maml:description> <command:verb>Install</command:verb> <command:noun>MSIPatch</command:noun> </command:details> <maml:description> <maml:para>You can install one or more patch packages to all installed targets products or to just a subset of products.</maml:para> <maml:para /> <maml:para>Progress, warnings, and errors during the install are sent through the pipeline making this command fully integrated.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Install-MSIPatch</maml:name> <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="0"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to a patch package to install. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Chain</maml:name> <maml:description> <maml:para>Whether to install all packages together. If elevated, a single restore point is created for all packages in the chain and reboots are suppressed when possible.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Whether to suppress all prompts.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Log</maml:name> <maml:description> <maml:para>The path to the log file. This use the file name as the base name and will append timestamp and product-specific information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Whether to pass the newly installed patch information after installation to the pipeline.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode or ProductCodes to which the patch or patches should be applied.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional property=value pairs to pass during install.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>ResultVariable</maml:name> <maml:description> <maml:para>The name of a variable to store operation results. Optionally prefix with "+" to combine results with existing results variable.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The user context for the product listed in the ProductCode parameter.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> <dev:defaultValue>Machine</dev:defaultValue> </command:parameter> <command:parameter aliases="User" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The user security identifier for product listed in the ProductCode parameter.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Install-MSIPatch</maml:name> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Chain</maml:name> <maml:description> <maml:para>Whether to install all packages together. If elevated, a single restore point is created for all packages in the chain and reboots are suppressed when possible.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Whether to suppress all prompts.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Log</maml:name> <maml:description> <maml:para>The path to the log file. This use the file name as the base name and will append timestamp and product-specific information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Whether to pass the newly installed patch information after installation to the pipeline.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByValue)" position="named"> <maml:name>Patch</maml:name> <maml:description> <maml:para>Information about a patch or patches to install to other products.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">Microsoft.Deployment.WindowsInstaller.PatchInstallation[]</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.PatchInstallation[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode or ProductCodes to which the patch or patches should be applied.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional property=value pairs to pass during install.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>ResultVariable</maml:name> <maml:description> <maml:para>The name of a variable to store operation results. Optionally prefix with "+" to combine results with existing results variable.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The user context for the product listed in the ProductCode parameter.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> <dev:defaultValue>Machine</dev:defaultValue> </command:parameter> <command:parameter aliases="User" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The user security identifier for product listed in the ProductCode parameter.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Install-MSIPatch</maml:name> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Chain</maml:name> <maml:description> <maml:para>Whether to install all packages together. If elevated, a single restore point is created for all packages in the chain and reboots are suppressed when possible.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Whether to suppress all prompts.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to a patch package to install. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Log</maml:name> <maml:description> <maml:para>The path to the log file. This use the file name as the base name and will append timestamp and product-specific information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Whether to pass the newly installed patch information after installation to the pipeline.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode or ProductCodes to which the patch or patches should be applied.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional property=value pairs to pass during install.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>ResultVariable</maml:name> <maml:description> <maml:para>The name of a variable to store operation results. Optionally prefix with "+" to combine results with existing results variable.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The user context for the product listed in the ProductCode parameter.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> <dev:defaultValue>Machine</dev:defaultValue> </command:parameter> <command:parameter aliases="User" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The user security identifier for product listed in the ProductCode parameter.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Chain</maml:name> <maml:description> <maml:para>Whether to install all packages together. If elevated, a single restore point is created for all packages in the chain and reboots are suppressed when possible.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Whether to suppress all prompts.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to a patch package to install. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Log</maml:name> <maml:description> <maml:para>The path to the log file. This use the file name as the base name and will append timestamp and product-specific information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Whether to pass the newly installed patch information after installation to the pipeline.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByValue)" position="named"> <maml:name>Patch</maml:name> <maml:description> <maml:para>Information about a patch or patches to install to other products.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">Microsoft.Deployment.WindowsInstaller.PatchInstallation[]</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.PatchInstallation[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="0"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to a patch package to install. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode or ProductCodes to which the patch or patches should be applied.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional property=value pairs to pass during install.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>ResultVariable</maml:name> <maml:description> <maml:para>The name of a variable to store operation results. Optionally prefix with "+" to combine results with existing results variable.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The user context for the product listed in the ProductCode parameter.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> <dev:defaultValue>Machine</dev:defaultValue> </command:parameter> <command:parameter aliases="User" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The user security identifier for product listed in the ProductCode parameter.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:parameters> <command:returnValues> <command:returnValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.PatchInstallation</maml:name> <maml:description> <maml:para>Information for the newly installed patch or patches.</maml:para> </maml:description> </dev:type> </command:returnValue> </command:returnValues> <command:examples> <command:example> <maml:title>-------------- EXAMPLE 1 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>install-msipatch .\example.msp MSIFASTINSTALL=2</dev:code> <dev:remarks> <maml:para>Install the example.msp patch package for all installed target products with MSIFASTINSTALL set to only do file costing before installation.</maml:para> <maml:para /> </dev:remarks> </command:example> <command:example> <maml:title>-------------- EXAMPLE 2 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msiproductinfo -name TEST | install-msipatch .\example.msp -log $env:TEMP\patch.log -passthru</dev:code> <dev:remarks> <maml:para>Install the example.msp patch package only for the product with ProductName "TEST" and log to the TEMP directory.</maml:para> <maml:para /> <maml:para>Return information about the patch after logging.</maml:para> <maml:para /> </dev:remarks> </command:example> </command:examples> <maml:relatedLinks> <maml:navigationLink> <maml:linkText>Uninstall-MSIPatch</maml:linkText> </maml:navigationLink> </maml:relatedLinks> </command:command> <command:command> <command:details> <command:name>Install-MSIProduct</command:name> <maml:description> <maml:para>Installs or modifies a product package.</maml:para> </maml:description> <command:verb>Install</command:verb> <command:noun>MSIProduct</command:noun> </command:details> <maml:description> <maml:para>Installs a product package or adds features to existing products.</maml:para> <maml:para /> <maml:para>Ultimately, this cmdlet can install, modify, repair, and even uninstall a product package or install patches but specialized cmdlets have been added for those tasks.</maml:para> <maml:para /> <maml:para>Progress, warnings, and errors during the install are sent through the pipeline making this command fully integrated.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Install-MSIProduct</maml:name> <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="0"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to a product package to install. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Chain</maml:name> <maml:description> <maml:para>Whether to install all packages together. If elevated, a single restore point is created for all packages in the chain and reboots are suppressed when possible.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter aliases="TargetDirectory" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>Destination</maml:name> <maml:description> <maml:para>The target directory where the product should be installed.</maml:para> <maml:para /> <maml:para>Note that the product package must be authored to support installing to TARGETDIR.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Whether to suppress all prompts.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Log</maml:name> <maml:description> <maml:para>The path to the log file. This use the file name as the base name and will append timestamp and product-specific information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Whether to pass the newly installed product information after installation to the pipeline.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional property=value pairs to pass during install.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>ResultVariable</maml:name> <maml:description> <maml:para>The name of a variable to store operation results. Optionally prefix with "+" to combine results with existing results variable.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Install-MSIProduct</maml:name> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Chain</maml:name> <maml:description> <maml:para>Whether to install all packages together. If elevated, a single restore point is created for all packages in the chain and reboots are suppressed when possible.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Whether to suppress all prompts.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Log</maml:name> <maml:description> <maml:para>The path to the log file. This use the file name as the base name and will append timestamp and product-specific information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Whether to pass the newly installed product information after installation to the pipeline.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByValue)" position="named"> <maml:name>Product</maml:name> <maml:description> <maml:para>An existing product to modify.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional property=value pairs to pass during install.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>ResultVariable</maml:name> <maml:description> <maml:para>The name of a variable to store operation results. Optionally prefix with "+" to combine results with existing results variable.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Install-MSIProduct</maml:name> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Chain</maml:name> <maml:description> <maml:para>Whether to install all packages together. If elevated, a single restore point is created for all packages in the chain and reboots are suppressed when possible.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter aliases="TargetDirectory" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>Destination</maml:name> <maml:description> <maml:para>The target directory where the product should be installed.</maml:para> <maml:para /> <maml:para>Note that the product package must be authored to support installing to TARGETDIR.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Whether to suppress all prompts.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to a product package to install. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Log</maml:name> <maml:description> <maml:para>The path to the log file. This use the file name as the base name and will append timestamp and product-specific information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Whether to pass the newly installed product information after installation to the pipeline.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional property=value pairs to pass during install.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>ResultVariable</maml:name> <maml:description> <maml:para>The name of a variable to store operation results. Optionally prefix with "+" to combine results with existing results variable.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Install-MSIProduct</maml:name> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Chain</maml:name> <maml:description> <maml:para>Whether to install all packages together. If elevated, a single restore point is created for all packages in the chain and reboots are suppressed when possible.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Whether to suppress all prompts.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Log</maml:name> <maml:description> <maml:para>The path to the log file. This use the file name as the base name and will append timestamp and product-specific information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Whether to pass the newly installed product information after installation to the pipeline.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode of an existing product to modify.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional property=value pairs to pass during install.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>ResultVariable</maml:name> <maml:description> <maml:para>The name of a variable to store operation results. Optionally prefix with "+" to combine results with existing results variable.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Chain</maml:name> <maml:description> <maml:para>Whether to install all packages together. If elevated, a single restore point is created for all packages in the chain and reboots are suppressed when possible.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter aliases="TargetDirectory" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>Destination</maml:name> <maml:description> <maml:para>The target directory where the product should be installed.</maml:para> <maml:para /> <maml:para>Note that the product package must be authored to support installing to TARGETDIR.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Whether to suppress all prompts.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to a product package to install. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Log</maml:name> <maml:description> <maml:para>The path to the log file. This use the file name as the base name and will append timestamp and product-specific information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Whether to pass the newly installed product information after installation to the pipeline.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="0"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to a product package to install. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByValue)" position="named"> <maml:name>Product</maml:name> <maml:description> <maml:para>An existing product to modify.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode of an existing product to modify.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional property=value pairs to pass during install.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>ResultVariable</maml:name> <maml:description> <maml:para>The name of a variable to store operation results. Optionally prefix with "+" to combine results with existing results variable.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:parameters> <command:inputTypes> <command:inputType> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ProductInstallation</maml:name> <maml:description> <maml:para>An existing product to modify.</maml:para> </maml:description> </dev:type> </command:inputType> </command:inputTypes> <command:returnValues> <command:returnValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ProductInstallation</maml:name> <maml:description> <maml:para>Information for the newly installed or modified product.</maml:para> </maml:description> </dev:type> </command:returnValue> </command:returnValues> <command:examples> <command:example> <maml:title>-------------- EXAMPLE 1 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>install-msiproduct .\example.msi NOBLOCK=1</dev:code> <dev:remarks> <maml:para>Installs the example.msi product package passing the ficticious NOBLOCK=1 property.</maml:para> <maml:para /> </dev:remarks> </command:example> <command:example> <maml:title>-------------- EXAMPLE 2 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msiproductinfo -name TEST | install-msiproduct ADDLOCAL=Addin -log $env:TEMP\install.log</dev:code> <dev:remarks> <maml:para>Modifies the existing product with ProductName TEST to add the "Addin" feature locally and log to the TEMP directory.</maml:para> <maml:para /> </dev:remarks> </command:example> </command:examples> <maml:relatedLinks> <maml:navigationLink> <maml:linkText>Install-MSIPatch</maml:linkText> </maml:navigationLink> <maml:navigationLink> <maml:linkText>Repair-MSIProduct</maml:linkText> </maml:navigationLink> <maml:navigationLink> <maml:linkText>Uninstall-MSIPatch</maml:linkText> </maml:navigationLink> <maml:navigationLink> <maml:linkText>Uninstall-MSIProduct</maml:linkText> </maml:navigationLink> </maml:relatedLinks> </command:command> <command:command> <command:details> <command:name>Measure-MSIProduct</command:name> <maml:description> <maml:para>Gets drive costs for components that would be installed to any drive.</maml:para> </maml:description> <command:verb>Measure</command:verb> <command:noun>MSIProduct</command:noun> </command:details> <maml:description> <maml:para>You can use this command to get the costs for components that will be installed to any drive mounted to the system. If multiple product packages are specified the total costs for all components in all specified products are returned.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Measure-MSIProduct</maml:name> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="1"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to a product package to measure. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter aliases="TargetDirectory" required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Destination</maml:name> <maml:description> <maml:para>The target directory where the product should be installed.</maml:para> <maml:para /> <maml:para>Note that the product package must be authored to support installing to TARGETDIR.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="false" position="named"> <maml:name>Patch</maml:name> <maml:description> <maml:para>The path to a patch package or packages to apply to the product package before measuring. Patches are applied in sequence order.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional properties to pass to the session.</maml:para> <maml:para /> <maml:para>Note that you can mark all features for installation using ADDLOCAL=ALL or set public directories using this parameter.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="false" position="named"> <maml:name>Transform</maml:name> <maml:description> <maml:para>The path to a transform or transforms to apply to the product package before measuring.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Measure-MSIProduct</maml:name> <command:parameter aliases="TargetDirectory" required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Destination</maml:name> <maml:description> <maml:para>The target directory where the product should be installed.</maml:para> <maml:para /> <maml:para>Note that the product package must be authored to support installing to TARGETDIR.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to a product package to measure. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="false" position="named"> <maml:name>Patch</maml:name> <maml:description> <maml:para>The path to a patch package or packages to apply to the product package before measuring. Patches are applied in sequence order.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional properties to pass to the session.</maml:para> <maml:para /> <maml:para>Note that you can mark all features for installation using ADDLOCAL=ALL or set public directories using this parameter.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="false" position="named"> <maml:name>Transform</maml:name> <maml:description> <maml:para>The path to a transform or transforms to apply to the product package before measuring.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter aliases="TargetDirectory" required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Destination</maml:name> <maml:description> <maml:para>The target directory where the product should be installed.</maml:para> <maml:para /> <maml:para>Note that the product package must be authored to support installing to TARGETDIR.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to a product package to measure. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="false" position="named"> <maml:name>Patch</maml:name> <maml:description> <maml:para>The path to a patch package or packages to apply to the product package before measuring. Patches are applied in sequence order.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="1"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to a product package to measure. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional properties to pass to the session.</maml:para> <maml:para /> <maml:para>Note that you can mark all features for installation using ADDLOCAL=ALL or set public directories using this parameter.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="false" position="named"> <maml:name>Transform</maml:name> <maml:description> <maml:para>The path to a transform or transforms to apply to the product package before measuring.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> </command:parameters> <command:returnValues> <command:returnValue> <dev:type> <maml:name>System.Management.Automation.PSDriveInfo</maml:name> <maml:description> <maml:para>A PSDriveInfo object with MSISpaceRequired and MSITemporarySpaceRequired properties attached (measured in bytes).</maml:para> </maml:description> </dev:type> </command:returnValue> </command:returnValues> <command:examples> <command:example> <maml:title>-------------- EXAMPLE 1 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>measure-msiproduct .\example.msi -patch .\example.msp -target X:\Example</dev:code> <dev:remarks> <maml:para>Gets the drive costs for example.msi with example.msp applied if installed to the X:\Example directory.</maml:para> <maml:para /> </dev:remarks> </command:example> </command:examples> </command:command> <command:command> <command:details> <command:name>Remove-MSILoggingPolicy</command:name> <maml:description> <maml:para>Removes the Windows Installer logging policy.</maml:para> </maml:description> <command:verb>Remove</command:verb> <command:noun>MSILoggingPolicy</command:noun> </command:details> <maml:description> <maml:para>The Windows Installer logging policy determines whether logs are generated by default and how much information they contain. This cmdlet removes the current logging and debug policies.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Remove-MSILoggingPolicy</maml:name> </command:syntaxItem> </command:syntax> <maml:relatedLinks> <maml:navigationLink> <maml:linkText>Get-MSILoggingPolicy</maml:linkText> </maml:navigationLink> <maml:navigationLink> <maml:linkText>Set-MSILoggingPolicy</maml:linkText> </maml:navigationLink> </maml:relatedLinks> </command:command> <command:command> <command:details> <command:name>Remove-MSISource</command:name> <maml:description> <maml:para>Removes a registered network source or URL from a product or patch.</maml:para> </maml:description> <command:verb>Remove</command:verb> <command:noun>MSISource</command:noun> </command:details> <maml:description> <maml:para>Windows Installer products and patches can have zero or more registered locations that direct Windows Installer where to look for package source. This cmdlet will remove a location registered to a product or patch and optionally return the remaining locations through the pipeline.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Remove-MSISource</maml:name> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode for a product or applied patch.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The directory or URL to unregister. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Whether to return the remaining registered source through the pipeline.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>PatchCode</maml:name> <maml:description> <maml:para>The patch code for a patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The user context for a product or patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> <dev:defaultValue>All</dev:defaultValue> </command:parameter> <command:parameter aliases="User" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The user SID for a product or patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Remove-MSISource</maml:name> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode for a product or applied patch.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="1"> <maml:name>Path</maml:name> <maml:description> <maml:para>The directory or URL to unregister. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Whether to return the remaining registered source through the pipeline.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>PatchCode</maml:name> <maml:description> <maml:para>The patch code for a patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The user context for a product or patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> <dev:defaultValue>All</dev:defaultValue> </command:parameter> <command:parameter aliases="User" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The user SID for a product or patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The directory or URL to unregister. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Whether to return the remaining registered source through the pipeline.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>PatchCode</maml:name> <maml:description> <maml:para>The patch code for a patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="1"> <maml:name>Path</maml:name> <maml:description> <maml:para>The directory or URL to unregister. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="0"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode for a product or applied patch.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The user context for a product or patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> <dev:defaultValue>All</dev:defaultValue> </command:parameter> <command:parameter aliases="User" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The user SID for a product or patch.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:parameters> <command:returnValues> <command:returnValue> <dev:type> <maml:name>Microsoft.Tools.WindowsInstaller.SourceInfo</maml:name> <maml:description> <maml:para>Source information for an installed product.</maml:para> </maml:description> </dev:type> </command:returnValue> <command:returnValue> <dev:type> <maml:name>Microsoft.Tools.WindowsInstaller.PatchSourceInfo</maml:name> <maml:description> <maml:para>Source information for an applied patch.</maml:para> </maml:description> </dev:type> </command:returnValue> </command:returnValues> <command:examples> <command:example> <maml:title>-------------- EXAMPLE 1 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>remove-msisource '{707ABAE4-4DC5-478C-9D36-7CC5C1A85A3C}' 'C:\Package Cache\'</dev:code> <dev:remarks> <maml:para>Removes the C:\Package Cache source location from the specified product.</maml:para> <maml:para /> </dev:remarks> </command:example> </command:examples> <maml:relatedLinks> <maml:navigationLink> <maml:linkText>Add-MSISource</maml:linkText> </maml:navigationLink> <maml:navigationLink> <maml:linkText>Clear-MSISource</maml:linkText> </maml:navigationLink> <maml:navigationLink> <maml:linkText>Get-MSISource</maml:linkText> </maml:navigationLink> </maml:relatedLinks> </command:command> <command:command> <command:details> <command:name>Repair-MSIProduct</command:name> <maml:description> <maml:para>Repairs or modifies a product package.</maml:para> </maml:description> <command:verb>Repair</command:verb> <command:noun>MSIProduct</command:noun> </command:details> <maml:description> <maml:para>By default, simply repairs an existing product. This cmdlet can also add or remove features, patches, or even uninstall but there are specialized cmdlets for that.</maml:para> <maml:para /> <maml:para>Progress, warnings, and errors during the install are sent through the pipeline making this command fully integrated.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Repair-MSIProduct</maml:name> <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="0"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to a product package to repair. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Chain</maml:name> <maml:description> <maml:para>Whether to install all packages together. If elevated, a single restore point is created for all packages in the chain and reboots are suppressed when possible.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Whether to suppress all prompts.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Log</maml:name> <maml:description> <maml:para>The path to the log file. This use the file name as the base name and will append timestamp and product-specific information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Whether to pass the newly installed patch information after installation to the pipeline.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional property=value pairs to pass during repair.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>ReinstallMode</maml:name> <maml:description> <maml:para>The REINSTALLMODE to use. You can specify the value as a string in the format used by Windows Installer. The default is equivalent to "omus".</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.ReinstallModes</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ReinstallModes</maml:name> </dev:type> <dev:defaultValue>FileOlderVersion,MachineData,UserData,Shortcut</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>ResultVariable</maml:name> <maml:description> <maml:para>The name of a variable to store operation results. Optionally prefix with "+" to combine results with existing results variable.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Repair-MSIProduct</maml:name> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Chain</maml:name> <maml:description> <maml:para>Whether to install all packages together. If elevated, a single restore point is created for all packages in the chain and reboots are suppressed when possible.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Whether to suppress all prompts.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Log</maml:name> <maml:description> <maml:para>The path to the log file. This use the file name as the base name and will append timestamp and product-specific information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Whether to pass the newly installed patch information after installation to the pipeline.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByValue)" position="named"> <maml:name>Product</maml:name> <maml:description> <maml:para>An existing product to repair or modify.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional property=value pairs to pass during repair.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>ReinstallMode</maml:name> <maml:description> <maml:para>The REINSTALLMODE to use. You can specify the value as a string in the format used by Windows Installer. The default is equivalent to "omus".</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.ReinstallModes</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ReinstallModes</maml:name> </dev:type> <dev:defaultValue>FileOlderVersion,MachineData,UserData,Shortcut</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>ResultVariable</maml:name> <maml:description> <maml:para>The name of a variable to store operation results. Optionally prefix with "+" to combine results with existing results variable.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Repair-MSIProduct</maml:name> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Chain</maml:name> <maml:description> <maml:para>Whether to install all packages together. If elevated, a single restore point is created for all packages in the chain and reboots are suppressed when possible.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Whether to suppress all prompts.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to a product package to repair. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Log</maml:name> <maml:description> <maml:para>The path to the log file. This use the file name as the base name and will append timestamp and product-specific information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Whether to pass the newly installed patch information after installation to the pipeline.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional property=value pairs to pass during repair.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>ReinstallMode</maml:name> <maml:description> <maml:para>The REINSTALLMODE to use. You can specify the value as a string in the format used by Windows Installer. The default is equivalent to "omus".</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.ReinstallModes</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ReinstallModes</maml:name> </dev:type> <dev:defaultValue>FileOlderVersion,MachineData,UserData,Shortcut</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>ResultVariable</maml:name> <maml:description> <maml:para>The name of a variable to store operation results. Optionally prefix with "+" to combine results with existing results variable.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Repair-MSIProduct</maml:name> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Chain</maml:name> <maml:description> <maml:para>Whether to install all packages together. If elevated, a single restore point is created for all packages in the chain and reboots are suppressed when possible.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Whether to suppress all prompts.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Log</maml:name> <maml:description> <maml:para>The path to the log file. This use the file name as the base name and will append timestamp and product-specific information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Whether to pass the newly installed patch information after installation to the pipeline.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode of an existing product to repair or modify.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional property=value pairs to pass during repair.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>ReinstallMode</maml:name> <maml:description> <maml:para>The REINSTALLMODE to use. You can specify the value as a string in the format used by Windows Installer. The default is equivalent to "omus".</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.ReinstallModes</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ReinstallModes</maml:name> </dev:type> <dev:defaultValue>FileOlderVersion,MachineData,UserData,Shortcut</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>ResultVariable</maml:name> <maml:description> <maml:para>The name of a variable to store operation results. Optionally prefix with "+" to combine results with existing results variable.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Chain</maml:name> <maml:description> <maml:para>Whether to install all packages together. If elevated, a single restore point is created for all packages in the chain and reboots are suppressed when possible.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Whether to suppress all prompts.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to a product package to repair. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Log</maml:name> <maml:description> <maml:para>The path to the log file. This use the file name as the base name and will append timestamp and product-specific information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Whether to pass the newly installed patch information after installation to the pipeline.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="0"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to a product package to repair. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByValue)" position="named"> <maml:name>Product</maml:name> <maml:description> <maml:para>An existing product to repair or modify.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode of an existing product to repair or modify.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional property=value pairs to pass during repair.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>ReinstallMode</maml:name> <maml:description> <maml:para>The REINSTALLMODE to use. You can specify the value as a string in the format used by Windows Installer. The default is equivalent to "omus".</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.ReinstallModes</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ReinstallModes</maml:name> </dev:type> <dev:defaultValue>FileOlderVersion,MachineData,UserData,Shortcut</dev:defaultValue> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>ResultVariable</maml:name> <maml:description> <maml:para>The name of a variable to store operation results. Optionally prefix with "+" to combine results with existing results variable.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:parameters> <command:inputTypes> <command:inputType> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ProductInstallation</maml:name> <maml:description> <maml:para>The product to repair or modify.</maml:para> </maml:description> </dev:type> </command:inputType> </command:inputTypes> <command:returnValues> <command:returnValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ProductInstallation</maml:name> <maml:description> <maml:para>Information for the newly repaired product.</maml:para> </maml:description> </dev:type> </command:returnValue> </command:returnValues> <command:examples> <command:example> <maml:title>-------------- EXAMPLE 1 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>repair-msiproduct -productcode {12341234-1234-1234-1234-123412341234} -reinstall "pecmsu" -log $env:TEMP\repair.log</dev:code> <dev:remarks> <maml:para>Repair the specified product using REINSTALLMODE="pecmsu" and log to the TEMP directory.</maml:para> <maml:para /> </dev:remarks> </command:example> <command:example> <maml:title>-------------- EXAMPLE 2 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msiproductinfo -name *TEST* | repair-msiproduct -chain</dev:code> <dev:remarks> <maml:para>Repair all products with ProductName matching *TEST* and show a single progress bar for the entire operation.</maml:para> <maml:para /> </dev:remarks> </command:example> </command:examples> <maml:relatedLinks> <maml:navigationLink> <maml:linkText>Install-MSIProduct</maml:linkText> </maml:navigationLink> <maml:navigationLink> <maml:linkText>Uninstall-MSIProduct</maml:linkText> </maml:navigationLink> </maml:relatedLinks> </command:command> <command:command> <command:details> <command:name>Set-MSILoggingPolicy</command:name> <maml:description> <maml:para>Sets the Windows Installer logging policy.</maml:para> </maml:description> <command:verb>Set</command:verb> <command:noun>MSILoggingPolicy</command:noun> </command:details> <maml:description> <maml:para>The Windows Installer logging policy determines whether logs are generated by default and how much information they contain. This cmdlet sets the logging policy and can return the logging modes as a collection of strings or the raw string value from the registry if -passthru is specified.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Set-MSILoggingPolicy</maml:name> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="0"> <maml:name>LoggingPolicy</maml:name> <maml:description> <maml:para>The logging mode to set in the registry. If "ExtraDebug" or "x" are set, the Debug policy is also set to 7; however, if neither are set the current Debug policy is not removed.</maml:para> <maml:para /> <maml:para>This can be a combination of "None", "ActionData", "ActionStart", "CommonData", "Error", "ExtraDebug", "FatalExit", "Information", "OutOfDiskSpace", "PropertyDump", "User", "Verbose", "Warning", "All", and "FlushEachLine"; or you can specify the Windows Installer command line options consisting of any combination of the characters "voicewarmupx!".</maml:para> <maml:para /> <maml:para>Note that "All" does not include "FlushEachLine", but is equivalent to "voicewarmupx".</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">Microsoft.Tools.WindowsInstaller.LoggingPolicies</command:parameterValue> <dev:type> <maml:name>Microsoft.Tools.WindowsInstaller.LoggingPolicies</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Returns the logging modes set in the registry.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Raw</maml:name> <maml:description> <maml:para>Along with -passthru, returns the raw string value from the registry.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="0"> <maml:name>LoggingPolicy</maml:name> <maml:description> <maml:para>The logging mode to set in the registry. If "ExtraDebug" or "x" are set, the Debug policy is also set to 7; however, if neither are set the current Debug policy is not removed.</maml:para> <maml:para /> <maml:para>This can be a combination of "None", "ActionData", "ActionStart", "CommonData", "Error", "ExtraDebug", "FatalExit", "Information", "OutOfDiskSpace", "PropertyDump", "User", "Verbose", "Warning", "All", and "FlushEachLine"; or you can specify the Windows Installer command line options consisting of any combination of the characters "voicewarmupx!".</maml:para> <maml:para /> <maml:para>Note that "All" does not include "FlushEachLine", but is equivalent to "voicewarmupx".</maml:para> </maml:description> <command:parameterValue required="true" variableLength="false">Microsoft.Tools.WindowsInstaller.LoggingPolicies</command:parameterValue> <dev:type> <maml:name>Microsoft.Tools.WindowsInstaller.LoggingPolicies</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>PassThru</maml:name> <maml:description> <maml:para>Returns the logging modes set in the registry.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Raw</maml:name> <maml:description> <maml:para>Along with -passthru, returns the raw string value from the registry.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> </command:parameters> <command:returnValues> <command:returnValue> <dev:type> <maml:name>string</maml:name> <maml:description> <maml:para>If -passthru and -raw are specified and a logging policy set, the raw registry value is returned.</maml:para> </maml:description> </dev:type> </command:returnValue> <command:returnValue> <dev:type> <maml:name>string[]</maml:name> <maml:description> <maml:para>If -passthru is specified, the default output type consisting of zero or more logging modes that are set in the registry.</maml:para> </maml:description> </dev:type> </command:returnValue> </command:returnValues> <maml:relatedLinks> <maml:navigationLink> <maml:linkText>Get-MSILoggingPolicy</maml:linkText> </maml:navigationLink> <maml:navigationLink> <maml:linkText>Remove-MSILoggingPolicy</maml:linkText> </maml:navigationLink> </maml:relatedLinks> </command:command> <command:command> <command:details> <command:name>Test-MSIProduct</command:name> <maml:description> <maml:para>Runs internal consistency evaluators (ICEs) against the product package or packages.</maml:para> </maml:description> <command:verb>Test</command:verb> <command:noun>MSIProduct</command:noun> </command:details> <maml:description> <maml:para>Internal consistency evaluators (ICEs) are custom actions that validate whether a product is authored as specified. If Orca or MsiVal2 is installed, the default ICE .cub ("ICE cube") file is used by default, and you can specify custom ICE cube.</maml:para> <maml:para /> <maml:para>You can also apply any number of patches or transforms before running ICEs. This allows you to evaluate a product that is transformed by, for example, a patch to also make sure the changes made by a patch or valid.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Test-MSIProduct</maml:name> <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="1"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to a package to evaluate. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Cube" required="false" variableLength="true" globbing="false" pipelineInput="false" position="named"> <maml:name>AdditionalCube</maml:name> <maml:description> <maml:para>One or more ICE .cub files to use for evaluation.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="false" position="named"> <maml:name>Exclude</maml:name> <maml:description> <maml:para>The names of ICEs to exclude from evaluation (all other ICEs are included).</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="false" position="named"> <maml:name>Include</maml:name> <maml:description> <maml:para>The names of ICEs to include from evaluation (all other ICEs are excluded).</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>NoDefault</maml:name> <maml:description> <maml:para>Do not import darice.cub if installed with Orca or MsiVal2.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="false" position="named"> <maml:name>Patch</maml:name> <maml:description> <maml:para>The path to a patch package or packages to apply to the product package before evaluation. Patches are applied in sequence order.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="false" position="named"> <maml:name>Transform</maml:name> <maml:description> <maml:para>The path to a transform or transforms to apply to the product package before evaluation.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Test-MSIProduct</maml:name> <command:parameter aliases="Cube" required="false" variableLength="true" globbing="false" pipelineInput="false" position="named"> <maml:name>AdditionalCube</maml:name> <maml:description> <maml:para>One or more ICE .cub files to use for evaluation.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="false" position="named"> <maml:name>Exclude</maml:name> <maml:description> <maml:para>The names of ICEs to exclude from evaluation (all other ICEs are included).</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="false" position="named"> <maml:name>Include</maml:name> <maml:description> <maml:para>The names of ICEs to include from evaluation (all other ICEs are excluded).</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to a package to evaluate. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>NoDefault</maml:name> <maml:description> <maml:para>Do not import darice.cub if installed with Orca or MsiVal2.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="false" position="named"> <maml:name>Patch</maml:name> <maml:description> <maml:para>The path to a patch package or packages to apply to the product package before evaluation. Patches are applied in sequence order.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="false" position="named"> <maml:name>Transform</maml:name> <maml:description> <maml:para>The path to a transform or transforms to apply to the product package before evaluation.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter aliases="Cube" required="false" variableLength="true" globbing="false" pipelineInput="false" position="named"> <maml:name>AdditionalCube</maml:name> <maml:description> <maml:para>One or more ICE .cub files to use for evaluation.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="false" position="named"> <maml:name>Exclude</maml:name> <maml:description> <maml:para>The names of ICEs to exclude from evaluation (all other ICEs are included).</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="false" position="named"> <maml:name>Include</maml:name> <maml:description> <maml:para>The names of ICEs to include from evaluation (all other ICEs are excluded).</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to a package to evaluate. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>NoDefault</maml:name> <maml:description> <maml:para>Do not import darice.cub if installed with Orca or MsiVal2.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="false" position="named"> <maml:name>Patch</maml:name> <maml:description> <maml:para>The path to a patch package or packages to apply to the product package before evaluation. Patches are applied in sequence order.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="1"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to a package to evaluate. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="true" pipelineInput="false" position="named"> <maml:name>Transform</maml:name> <maml:description> <maml:para>The path to a transform or transforms to apply to the product package before evaluation.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> </command:parameters> <command:returnValues> <command:returnValue> <dev:type> <maml:name>Microsoft.Tools.WindowsInstaller.IceMessage</maml:name> <maml:description> <maml:para>Information generated from each ICE. Specifying -Verbose will show additional information from each ICE.</maml:para> </maml:description> </dev:type> </command:returnValue> </command:returnValues> <command:examples> <command:example> <maml:title>-------------- EXAMPLE 1 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>test-msiproduct .\example.msi -include ICE0* -exclude ICE03 -v</dev:code> <dev:remarks> <maml:para>Output all messages from ICEs 01 through 09 except for ICE03.</maml:para> <maml:para /> </dev:remarks> </command:example> <command:example> <maml:title>-------------- EXAMPLE 2 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>test-msiproduct .\example.msi -patch .\example.msp -add .\tests\custom.cub</dev:code> <dev:remarks> <maml:para>Apply example.msp to example.msi, then run all the default and custom ICEs.</maml:para> <maml:para /> </dev:remarks> </command:example> </command:examples> </command:command> <command:command> <command:details> <command:name>Uninstall-MSIPatch</command:name> <maml:description> <maml:para>Installs a patch package or packages for all or only specified products.</maml:para> </maml:description> <command:verb>Uninstall</command:verb> <command:noun>MSIPatch</command:noun> </command:details> <maml:description> <maml:para>Uninstalls one or more packages from all products which they're applied or only from the specified set of products based on their ProductCode.</maml:para> <maml:para /> <maml:para>Progress, warnings, and errors during the install are sent through the pipeline making this command fully integrated.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Uninstall-MSIPatch</maml:name> <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="0"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to a patch package to uninstall. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Chain</maml:name> <maml:description> <maml:para>Whether to install all packages together. If elevated, a single restore point is created for all packages in the chain and reboots are suppressed when possible.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Whether to suppress all prompts.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Log</maml:name> <maml:description> <maml:para>The path to the log file. This use the file name as the base name and will append timestamp and product-specific information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode or ProductCodes from which patches are removed.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional property=value pairs to pass during uninstall.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>ResultVariable</maml:name> <maml:description> <maml:para>The name of a variable to store operation results. Optionally prefix with "+" to combine results with existing results variable.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The user context for the product listed in the ProductCode parameter.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> <dev:defaultValue>Machine</dev:defaultValue> </command:parameter> <command:parameter aliases="User" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The user security identifier for product listed in the ProductCode parameter.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Uninstall-MSIPatch</maml:name> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Chain</maml:name> <maml:description> <maml:para>Whether to install all packages together. If elevated, a single restore point is created for all packages in the chain and reboots are suppressed when possible.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Whether to suppress all prompts.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Log</maml:name> <maml:description> <maml:para>The path to the log file. This use the file name as the base name and will append timestamp and product-specific information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByValue)" position="named"> <maml:name>Patch</maml:name> <maml:description> <maml:para>Information about a patch or patches to uninstall.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">Microsoft.Deployment.WindowsInstaller.PatchInstallation[]</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.PatchInstallation[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode or ProductCodes from which patches are removed.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional property=value pairs to pass during uninstall.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>ResultVariable</maml:name> <maml:description> <maml:para>The name of a variable to store operation results. Optionally prefix with "+" to combine results with existing results variable.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The user context for the product listed in the ProductCode parameter.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> <dev:defaultValue>Machine</dev:defaultValue> </command:parameter> <command:parameter aliases="User" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The user security identifier for product listed in the ProductCode parameter.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Uninstall-MSIPatch</maml:name> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Chain</maml:name> <maml:description> <maml:para>Whether to install all packages together. If elevated, a single restore point is created for all packages in the chain and reboots are suppressed when possible.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Whether to suppress all prompts.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to a patch package to uninstall. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Log</maml:name> <maml:description> <maml:para>The path to the log file. This use the file name as the base name and will append timestamp and product-specific information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode or ProductCodes from which patches are removed.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional property=value pairs to pass during uninstall.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>ResultVariable</maml:name> <maml:description> <maml:para>The name of a variable to store operation results. Optionally prefix with "+" to combine results with existing results variable.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The user context for the product listed in the ProductCode parameter.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> <dev:defaultValue>Machine</dev:defaultValue> </command:parameter> <command:parameter aliases="User" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The user security identifier for product listed in the ProductCode parameter.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Chain</maml:name> <maml:description> <maml:para>Whether to install all packages together. If elevated, a single restore point is created for all packages in the chain and reboots are suppressed when possible.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Whether to suppress all prompts.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to a patch package to uninstall. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Log</maml:name> <maml:description> <maml:para>The path to the log file. This use the file name as the base name and will append timestamp and product-specific information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByValue)" position="named"> <maml:name>Patch</maml:name> <maml:description> <maml:para>Information about a patch or patches to uninstall.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">Microsoft.Deployment.WindowsInstaller.PatchInstallation[]</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.PatchInstallation[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="0"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to a patch package to uninstall. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode or ProductCodes from which patches are removed.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional property=value pairs to pass during uninstall.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>ResultVariable</maml:name> <maml:description> <maml:para>The name of a variable to store operation results. Optionally prefix with "+" to combine results with existing results variable.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter aliases="Context InstallContext" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserContext</maml:name> <maml:description> <maml:para>The user context for the product listed in the ProductCode parameter.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">Microsoft.Deployment.WindowsInstaller.UserContexts</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.UserContexts</maml:name> </dev:type> <dev:defaultValue>Machine</dev:defaultValue> </command:parameter> <command:parameter aliases="User" required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>UserSid</maml:name> <maml:description> <maml:para>The user security identifier for product listed in the ProductCode parameter.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:parameters> <command:examples> <command:example> <maml:title>-------------- EXAMPLE 1 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msiproductifo -name TEST | get-msipatchinfo | uninstall-msipatch -log $env:TEMP\unpatch.log</dev:code> <dev:remarks> <maml:para>Uninstalls all patches applied to the product with ProductName TEST and logs to the TEMP directory.</maml:para> <maml:para /> </dev:remarks> </command:example> </command:examples> <maml:relatedLinks> <maml:navigationLink> <maml:linkText>Install-MSIPatch</maml:linkText> </maml:navigationLink> </maml:relatedLinks> </command:command> <command:command> <command:details> <command:name>Uninstall-MSIProduct</command:name> <maml:description> <maml:para>Uninstalls a product package or packages, or an existing product on the machine.</maml:para> </maml:description> <command:verb>Uninstall</command:verb> <command:noun>MSIProduct</command:noun> </command:details> <maml:description> <maml:para>This cmdlet, unlike related cmdlets, is designed to uninstalled one or more products. While there are ways to override this behavior, it is not recommend and you should instead use specialized cmdlets for this purpose. See the related links for suggestions.</maml:para> <maml:para /> <maml:para>Progress, warnings, and errors during the install are sent through the pipeline making this command fully integrated.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Uninstall-MSIProduct</maml:name> <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="0"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to a product package to uninstall. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Chain</maml:name> <maml:description> <maml:para>Whether to install all packages together. If elevated, a single restore point is created for all packages in the chain and reboots are suppressed when possible.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Whether to suppress all prompts.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Log</maml:name> <maml:description> <maml:para>The path to the log file. This use the file name as the base name and will append timestamp and product-specific information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional property=value pairs to pass during uninstall.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>ResultVariable</maml:name> <maml:description> <maml:para>The name of a variable to store operation results. Optionally prefix with "+" to combine results with existing results variable.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Uninstall-MSIProduct</maml:name> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Chain</maml:name> <maml:description> <maml:para>Whether to install all packages together. If elevated, a single restore point is created for all packages in the chain and reboots are suppressed when possible.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Whether to suppress all prompts.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Log</maml:name> <maml:description> <maml:para>The path to the log file. This use the file name as the base name and will append timestamp and product-specific information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByValue)" position="named"> <maml:name>Product</maml:name> <maml:description> <maml:para>The product to uninstall.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional property=value pairs to pass during uninstall.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>ResultVariable</maml:name> <maml:description> <maml:para>The name of a variable to store operation results. Optionally prefix with "+" to combine results with existing results variable.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Uninstall-MSIProduct</maml:name> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Chain</maml:name> <maml:description> <maml:para>Whether to install all packages together. If elevated, a single restore point is created for all packages in the chain and reboots are suppressed when possible.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Whether to suppress all prompts.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to a product package to uninstall. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Log</maml:name> <maml:description> <maml:para>The path to the log file. This use the file name as the base name and will append timestamp and product-specific information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional property=value pairs to pass during uninstall.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>ResultVariable</maml:name> <maml:description> <maml:para>The name of a variable to store operation results. Optionally prefix with "+" to combine results with existing results variable.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> <command:syntaxItem> <maml:name>Uninstall-MSIProduct</maml:name> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Chain</maml:name> <maml:description> <maml:para>Whether to install all packages together. If elevated, a single restore point is created for all packages in the chain and reboots are suppressed when possible.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Whether to suppress all prompts.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Log</maml:name> <maml:description> <maml:para>The path to the log file. This use the file name as the base name and will append timestamp and product-specific information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode of a product to uninstall.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional property=value pairs to pass during uninstall.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>ResultVariable</maml:name> <maml:description> <maml:para>The name of a variable to store operation results. Optionally prefix with "+" to combine results with existing results variable.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Chain</maml:name> <maml:description> <maml:para>Whether to install all packages together. If elevated, a single restore point is created for all packages in the chain and reboots are suppressed when possible.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Force</maml:name> <maml:description> <maml:para>Whether to suppress all prompts.</maml:para> </maml:description> <dev:type> <maml:name>SwitchParameter</maml:name> </dev:type> </command:parameter> <command:parameter aliases="PSPath" required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>LiteralPath</maml:name> <maml:description> <maml:para>The path to a product package to uninstall. The value of -LiteralPath is used exactly as typed. No characters are interpreted as wildcards.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>Log</maml:name> <maml:description> <maml:para>The path to the log file. This use the file name as the base name and will append timestamp and product-specific information.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="true" pipelineInput="true (ByValue, ByPropertyName)" position="0"> <maml:name>Path</maml:name> <maml:description> <maml:para>The path to a product package to uninstall. Wildcards are permitted. You can specify * in any part of the path to select all matching files.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByValue)" position="named"> <maml:name>Product</maml:name> <maml:description> <maml:para>The product to uninstall.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</command:parameterValue> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ProductInstallation[]</maml:name> </dev:type> </command:parameter> <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named"> <maml:name>ProductCode</maml:name> <maml:description> <maml:para>The ProductCode of a product to uninstall.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="true (FromRemainingArguments)" position="named"> <maml:name>Properties</maml:name> <maml:description> <maml:para>Additional property=value pairs to pass during uninstall.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">string[]</command:parameterValue> <dev:type> <maml:name>string[]</maml:name> </dev:type> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named"> <maml:name>ResultVariable</maml:name> <maml:description> <maml:para>The name of a variable to store operation results. Optionally prefix with "+" to combine results with existing results variable.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="false">String</command:parameterValue> <dev:type> <maml:name>String</maml:name> </dev:type> </command:parameter> </command:parameters> <command:inputTypes> <command:inputType> <dev:type> <maml:name>Microsoft.Deployment.WindowsInstaller.ProductInstallation</maml:name> <maml:description> <maml:para>The product to uninstall.</maml:para> </maml:description> </dev:type> </command:inputType> </command:inputTypes> <command:examples> <command:example> <maml:title>-------------- EXAMPLE 1 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>uninstall-msiproduct .\example.msi -log $env:TEMP\uninstall.log</dev:code> <dev:remarks> <maml:para>Uninstall the example.msi product package and log to the TEMP directory.</maml:para> <maml:para /> </dev:remarks> </command:example> <command:example> <maml:title>-------------- EXAMPLE 2 --------------</maml:title> <maml:introduction> <maml:para>C:\PS></maml:para> </maml:introduction> <dev:code>get-msiproductinfo -name *TEST* | uninstall-msiproduct -chain</dev:code> <dev:remarks> <maml:para>Uninstall all products with ProductName matching *TEST* and show a single progress bar for the entire operation.</maml:para> <maml:para /> </dev:remarks> </command:example> </command:examples> <maml:relatedLinks> <maml:navigationLink> <maml:linkText>Install-MSIProduct</maml:linkText> </maml:navigationLink> <maml:navigationLink> <maml:linkText>Repair-MSIProduct</maml:linkText> </maml:navigationLink> </maml:relatedLinks> </command:command> </helpItems> |