Set-CMMsiDeploymentType

Configure a Windows Installer deployment type.

Syntax

Set-CMMsiDeploymentType
   [-AddDetectionClause <DetectionClause[]>]
   [-CacheContent <Boolean>]
   [-ContentFallback <Boolean>]
   [-ContentLocation <String>]
   [-DetectionClauseConnector <Hashtable[]>]
   [-EnableBranchCache <Boolean>]
   [-EstimatedRuntimeMins <Int32>]
   [-Force32Bit <Boolean>]
   [-ForceScriptDetection32Bit <Boolean>]
   [-GroupDetectionClauses <String[]>]
   [-InstallationBehaviorType <InstallationBehaviorType>]
   [-InstallCommand <String>]
   [-InstallWorkingDirectory <String>]
   [-LogonRequirementType <LogonRequirementType>]
   [-MaximumRuntimeMins <Int32>]
   [-ProductCode <String>]
   [-RebootBehavior <PostExecutionBehavior>]
   [-RemoveDetectionClause <String[]>]
   [-RepairCommand <String>]
   [-RepairWorkingDirectory <String>]
   [-RequireUserInteraction <Boolean>]
   [-ScriptFile <String>]
   [-ScriptLanguage <ScriptLanguage>]
   [-ScriptText <String>]
   [-SlowNetworkDeploymentMode <ContentHandlingMode>]
   [-SourceUpdateProductCode <String>]
   [-UninstallCommand <String>]
   [-UninstallContentLocation <String>]
   [-UninstallOption <UninstallContentSetting>]
   [-UninstallWorkingDirectory <String>]
   [-UserInteractionMode <UserInteractionMode>]
   [-AddRequirement <Rule[]>]
   -ApplicationName <String>
   -DeploymentTypeName <String>
   [-NewName <String>]
   [-PassThru]
   [-RemoveLanguage <String[]>]
   [-RemoveRequirement <Rule[]>]
   [-AddLanguage <String[]>]
   [-Comment <String>]
   [-Force]
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-CMMsiDeploymentType
   [-AddDetectionClause <DetectionClause[]>]
   [-CacheContent <Boolean>]
   [-ContentFallback <Boolean>]
   [-ContentLocation <String>]
   [-DetectionClauseConnector <Hashtable[]>]
   [-EnableBranchCache <Boolean>]
   [-EstimatedRuntimeMins <Int32>]
   [-Force32Bit <Boolean>]
   [-ForceScriptDetection32Bit <Boolean>]
   [-GroupDetectionClauses <String[]>]
   [-InstallationBehaviorType <InstallationBehaviorType>]
   [-InstallCommand <String>]
   [-InstallWorkingDirectory <String>]
   [-LogonRequirementType <LogonRequirementType>]
   [-MaximumRuntimeMins <Int32>]
   [-ProductCode <String>]
   [-RebootBehavior <PostExecutionBehavior>]
   [-RemoveDetectionClause <String[]>]
   [-RepairCommand <String>]
   [-RepairWorkingDirectory <String>]
   [-RequireUserInteraction <Boolean>]
   [-ScriptFile <String>]
   [-ScriptLanguage <ScriptLanguage>]
   [-ScriptText <String>]
   [-SlowNetworkDeploymentMode <ContentHandlingMode>]
   [-SourceUpdateProductCode <String>]
   [-UninstallCommand <String>]
   [-UninstallContentLocation <String>]
   [-UninstallOption <UninstallContentSetting>]
   [-UninstallWorkingDirectory <String>]
   [-UserInteractionMode <UserInteractionMode>]
   [-AddRequirement <Rule[]>]
   -Application <IResultObject>
   -DeploymentTypeName <String>
   [-NewName <String>]
   [-PassThru]
   [-RemoveLanguage <String[]>]
   [-RemoveRequirement <Rule[]>]
   [-AddLanguage <String[]>]
   [-Comment <String>]
   [-Force]
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-CMMsiDeploymentType
   [-AddDetectionClause <DetectionClause[]>]
   [-CacheContent <Boolean>]
   [-ContentFallback <Boolean>]
   [-ContentLocation <String>]
   [-DetectionClauseConnector <Hashtable[]>]
   [-EnableBranchCache <Boolean>]
   [-EstimatedRuntimeMins <Int32>]
   [-Force32Bit <Boolean>]
   [-ForceScriptDetection32Bit <Boolean>]
   [-GroupDetectionClauses <String[]>]
   [-InstallationBehaviorType <InstallationBehaviorType>]
   [-InstallCommand <String>]
   [-InstallWorkingDirectory <String>]
   [-LogonRequirementType <LogonRequirementType>]
   [-MaximumRuntimeMins <Int32>]
   [-ProductCode <String>]
   [-RebootBehavior <PostExecutionBehavior>]
   [-RemoveDetectionClause <String[]>]
   [-RepairCommand <String>]
   [-RepairWorkingDirectory <String>]
   [-RequireUserInteraction <Boolean>]
   [-ScriptFile <String>]
   [-ScriptLanguage <ScriptLanguage>]
   [-ScriptText <String>]
   [-SlowNetworkDeploymentMode <ContentHandlingMode>]
   [-SourceUpdateProductCode <String>]
   [-UninstallCommand <String>]
   [-UninstallContentLocation <String>]
   [-UninstallOption <UninstallContentSetting>]
   [-UninstallWorkingDirectory <String>]
   [-UserInteractionMode <UserInteractionMode>]
   [-AddRequirement <Rule[]>]
   -ApplicationId <Int32>
   -DeploymentTypeName <String>
   [-NewName <String>]
   [-PassThru]
   [-RemoveLanguage <String[]>]
   [-RemoveRequirement <Rule[]>]
   [-AddLanguage <String[]>]
   [-Comment <String>]
   [-Force]
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-CMMsiDeploymentType
   [-AddDetectionClause <DetectionClause[]>]
   [-CacheContent <Boolean>]
   [-ContentFallback <Boolean>]
   [-ContentLocation <String>]
   [-DetectionClauseConnector <Hashtable[]>]
   [-EnableBranchCache <Boolean>]
   [-EstimatedRuntimeMins <Int32>]
   [-Force32Bit <Boolean>]
   [-ForceScriptDetection32Bit <Boolean>]
   [-GroupDetectionClauses <String[]>]
   [-InstallationBehaviorType <InstallationBehaviorType>]
   [-InstallCommand <String>]
   [-InstallWorkingDirectory <String>]
   [-LogonRequirementType <LogonRequirementType>]
   [-MaximumRuntimeMins <Int32>]
   [-ProductCode <String>]
   [-RebootBehavior <PostExecutionBehavior>]
   [-RemoveDetectionClause <String[]>]
   [-RepairCommand <String>]
   [-RepairWorkingDirectory <String>]
   [-RequireUserInteraction <Boolean>]
   [-ScriptFile <String>]
   [-ScriptLanguage <ScriptLanguage>]
   [-ScriptText <String>]
   [-SlowNetworkDeploymentMode <ContentHandlingMode>]
   [-SourceUpdateProductCode <String>]
   [-UninstallCommand <String>]
   [-UninstallContentLocation <String>]
   [-UninstallOption <UninstallContentSetting>]
   [-UninstallWorkingDirectory <String>]
   [-UserInteractionMode <UserInteractionMode>]
   [-AddRequirement <Rule[]>]
   -InputObject <IResultObject>
   [-NewName <String>]
   [-PassThru]
   [-RemoveLanguage <String[]>]
   [-RemoveRequirement <Rule[]>]
   [-AddLanguage <String[]>]
   [-Comment <String>]
   [-Force]
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

Use this cmdlet to configure the settings for a Windows Installer (MSI) deployment type on an application.

Note

Run Configuration Manager cmdlets from the Configuration Manager site drive, for example PS XYZ:\>. For more information, see getting started.

Examples

Example 1: Modify a Windows Installer deployment type

This command changes the name of the deployment type from DTMsi to DTMsi_Updated. It adds English (United States) (en-US) and Chinese (Simplified) (zh-CN) as supported languages. It specifies that the installation will take approximately 14 minutes to complete, and will only run when no users are signed into Windows.

Set-CMMSiDeploymentType -ApplicationName "testMsi" -DeploymentTypeName "DTMsi" -NewName "DTMsi_Updated" -AddLanguage "en-US","zh-CN" -Comment "New Deployment Type-updated" -EstimatedRuntimeMins 14 -LogonRequirementType OnlyWhenNoUserLoggedOn

For other examples with requirement rules and detection methods, see Set-CMScriptDeploymentType and Add-CMMsiDeploymentType.

Parameters

-AddDetectionClause

Specify an array of detection method clauses for this deployment type. To create a detection clause, use one of the following cmdlets:

Save the output of these cmdlets into a variable. Then specify those variables as an array for this parameter. For example, -AddDetectionClause $clauseFile1,$clauseFile2,$clauseFile3.

You can also use Get-CMDeploymentTypeDetectionClause to get an existing detection clause from another application.

Type:DetectionClause[]
Aliases:AddDetectionClauses
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AddLanguage

Specify an array of language tags that the deployment type supports. For example, to add Russian (Russia), specify the tag ru-RU.

For more information and a list of language tags, see Windows Language Code Identifier (LCID) Reference.

Type:String[]
Aliases:AddLanguages, Languages, Language
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AddRequirement

-Application

Specify an application object for this deployment type. To get this object, use the Get-CMApplication cmdlet.

Type:IResultObject
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ApplicationId

Specify the ID of the application for this deployment type.

Type:Int32
Aliases:CI_ID, CIId
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ApplicationName

Specify the name of the application for this deployment type.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-CacheContent

Set this parameter to $true to save content indefinitely in the client cache.

Type:Boolean
Aliases:PersistContentInClientCache
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Comment

Specify an optional description for the deployment type.

Type:String
Aliases:AdministratorComment
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Prompts you for confirmation before running the cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ContentFallback

If you set this parameter to $true, when the content isn't available on any distribution points in the client's current or neighbor boundary groups, the client can use distribution points in the site default boundary group.

Type:Boolean
Aliases:EnableContentLocationFallback, AllowClientsToUseFallbackSourceLocationForContent
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ContentLocation

Specifies the network source path of the MSI file. The site system server requires permission to read the content files.

Starting in version 2107, you can specify the path of the MSI file or the path to the folder that contains the MSI.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DeploymentTypeName

Specify the name of the deployment type to configure.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-DetectionClauseConnector

When you use the GroupDetectionClauses parameter to group detection clauses, use this parameter to specify the connector.

The following example defines the OR connector: @{"LogicalName"=$clauseFile3.Setting.LogicalName;"Connector"="OR"}

Type:Hashtable[]
Aliases:DetectionClauseConnectors
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DisableWildcardHandling

This parameter treats wildcard characters as literal character values. You can't combine it with ForceWildcardHandling.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EnableBranchCache

This parameter is deprecated. BranchCache is always enabled on clients, and they use it if the distribution point supports it.

Type:Boolean
Aliases:AllowClientsToShareContentOnSameSubnet
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EstimatedRuntimeMins

Specify the estimated installation time, in minutes, of this deployment type for the application. Software Center displays this estimate to the user before the application installs.

Type:Int32
Aliases:EstimatedInstallationTimeMinutes, EstimatedInstallationTimeMins, EstimatedRunTimeMinutes
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Forces the command to run without asking for user confirmation.

Type:SwitchParameter
Aliases:ForceForUnknownPublisher
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force32Bit

Set this parameter to $true to run the install and uninstall programs as 32-bit processes on 64-bit clients.

Type:Boolean
Aliases:Force32BitInstaller
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ForceScriptDetection32Bit

If you use a custom script to detect the presence of this deployment type, set this parameter to $true to run the script as a 32-bit process on 64-bit clients.

Type:Boolean
Aliases:Force32BitDetectionScript
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ForceWildcardHandling

This parameter processes wildcard characters and may lead to unexpected behavior (not recommended). You can't combine it with DisableWildcardHandling.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-GroupDetectionClauses

When you configure rules to detect the presence of this deployment type, use this parameter to group clauses. To create a detection clause, use one of the following cmdlets:

Save the output of these cmdlets into a variable. Then use the following format to group clauses: $clause2.Setting.LogicalName, $clause3.Setting.LogicalName.

Tip

In the Configuration Manager console, when you select the Group action, the clauses show parentheses before and after the grouped clauses.

Type:String[]
Aliases:GroupDetectionClausesByLogicalName
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Specify a deployment type object to configure. To get this object, use the Get-CMDeploymentType cmdlet.

Type:IResultObject
Aliases:DeploymentType
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-InstallationBehaviorType

Specify the installation behavior for this deployment type:

  • InstallForUser: The client only installs the application for the user to whom you deploy the application.
  • InstallForSystem: The client installs the application only once. It's available to all users.
  • InstallForSystemIfResourceIsDeviceOtherwiseInstallForUser: If you deploy the application to a device, the client installs it for all users. If you deploy the application to a user, the client only installs it for that user.
Type:InstallationBehaviorType
Accepted values:InstallForUser, InstallForSystem, InstallForSystemIfResourceIsDeviceOtherwiseInstallForUser
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InstallCommand

Specify the installation program command line to install the Windows Installer package.

Type:String
Aliases:InstallationProgram
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InstallWorkingDirectory

Specify the path to use as the working directory when the client runs the InstallCommand.

Type:String
Aliases:InstallationStartIn, InstallFolder
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LogonRequirementType

Specify the requirement for a signed-in user:

  • OnlyWhenNoUserLoggedOn: Only when no user is signed into Windows.

  • OnlyWhenUserLoggedOn: Only when a user is signed in. This option is the default.

  • WhetherOrNotUserLoggedOn: Whether or not a user is signed in.

    Note

    The value WhereOrNotUserLoggedOn is deprecated. It's replaced by WhetherOrNotUserLoggedOn.

If you set InstallationBehaviorType to InstallForUser, then you can't set this parameter.

Type:LogonRequirementType
Accepted values:OnlyWhenUserLoggedOn, WhereOrNotUserLoggedOn, WhetherOrNotUserLoggedOn, OnlyWhenNoUserLoggedOn
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaximumRuntimeMins

Specify the maximum allowed run time of the deployment program for this application. Set an integer value in minutes.

Type:Int32
Aliases:MaximumAllowedRunTimeMinutes, MaximumAllowedRunTimeMins, MaximumRunTimeMinutes
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NewName

Specify a new name to rename this deployment type.

Type:String
Aliases:NewDeploymentTypeName
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PassThru

Add this parameter to return an object that represents the item with which you're working. By default, this cmdlet may not generate any output.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ProductCode

Specify the MSI product code to set as the detection method. When you use this parameter, it overwrites any other detection methods.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RebootBehavior

Specify the post-installation behavior:

  • BasedOnExitCode: Determine behavior based on return codes.

  • NoAction: No specific action.

  • ProgramReboot: The software install program might force a device restart.

  • ForceReboot: Configuration Manager client will force a mandatory device restart.

For more information on these behaviors, see Create applications in Configuration Manager.

Type:PostExecutionBehavior
Accepted values:BasedOnExitCode, NoAction, ForceReboot, ProgramReboot
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RemoveDetectionClause

Specify an array of detection method clauses to remove.

Type:String[]
Aliases:RemoveDetectionClauses
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RemoveLanguage

Specify an array of supported languages to remove from this deployment type.

Type:String[]
Aliases:RemoveLanguages
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RemoveRequirement

Specify an array of requirement rules to remove from this deployment type.

Type:Rule[]
Aliases:RemoveRequirements
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RepairCommand

Use this parameter to configure the repair command. Also configure the RepairWorkingDirectory parameter.

Starting in version 2006, you can specify an empty string.

Type:String
Aliases:RepairProgram
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RepairWorkingDirectory

Use this parameter to configure the repair command's working directory. Also configure the RepairCommand parameter.

Type:String
Aliases:RepairStartIn, RepairFolder
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RequireUserInteraction

Set this parameter to $true to allow users to view and interact with the deployment type installation.

Type:Boolean
Aliases:RequiresUserInteraction
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ScriptFile

Specify the script file to use to detect this deployment type. Also use the ScriptLanguage parameter.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ScriptLanguage

If you use the ScriptFile or ScriptText parameters, use this parameter to specify the script language.

Type:ScriptLanguage
Aliases:ScriptType
Accepted values:PowerShell, VBScript, JavaScript
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ScriptText

Specify the text of a script to detect this deployment type. Also use the ScriptLanguage parameter.

For more information, see About custom script detection methods.

Type:String
Aliases:ScriptContent, Script
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SlowNetworkDeploymentMode

When a client uses a distribution point from a neighbor boundary group or the default site boundary group, specify the deployment option:

  • DoNothing: Don't download content
  • Download: Download content from the distribution point and run locally
Type:ContentHandlingMode
Accepted values:DoNothing, Download
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SourceUpdateProductCode

Specify an MSI product code. This product code is a GUID format.

Windows Source management enables an .MSI represented by this deployment type to automatically be updated or repaired from content source files on an available distribution point.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UninstallCommand

Specifies the command line to uninstall the application.

Starting in version 2006, you can specify an empty string.

Type:String
Aliases:UninstallationProgram
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UninstallContentLocation

Specify the network path to source content to use with the UninstallCommand that's different from the ContentLocation. Use this parameter when you set UninstallOption to Different.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UninstallOption

Specify what content to use with the UninstallCommand:

  • SameAsInstall: The install and uninstall content are the same. This option is the default.
  • NoneRequired: The application doesn't need content for uninstall.
  • Different: The uninstall content is different from the install content. Use UninstallContentLocation to specify the network path to the content that's used to uninstall the application.
Type:UninstallContentSetting
Accepted values:SameAsInstall, NoneRequired, Different
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UninstallWorkingDirectory

Specify the path to use as the working directory when the client runs the UninstallCommand.

Type:String
Aliases:UninstallationStartIn, UninstallFolder
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UserInteractionMode

Specify the installation program visibility:

  • Normal: The deployment type runs in the normal mode based on system and program defaults. This mode is the default.
  • Minimized: The deployment type runs minimized on client devices. Users might see the installation activity in the notification area or taskbar.
  • Maximized: The deployment type runs maximized on client devices. Users see all installation activity.
  • Hidden: The deployment type runs hidden on client devices. Users see no installation activity.
Type:UserInteractionMode
Aliases:InstallationProgramVisibility
Accepted values:Normal, Minimized, Maximized, Hidden
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Shows what would happen if the cmdlet runs. The cmdlet doesn't run.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Inputs

Microsoft.ConfigurationManagement.ManagementProvider.IResultObject

Outputs

System.Object