This article describes the Windows PowerShell issues that are fixed in Cumulative Update 2 (CU2) for Microsoft System Center 2012 R2 Configuration Manager. Other CU2 fixes are described in Cumulative Update 2 for System Center 2012 R2 Configuration Manager.

Issues that are fixed

Windows PowerShell

  • The Export-CMApplication cmdlet replaces the file that is specified in the -Path parameter without prompting for confirmation.

    Note After you install this update, you are prompted to overwrite an existing file. This prompt can be suppressed by using the -Force parameter.

  • Trying to view the properties of a distribution point on a secondary site that was created by using the New-CMSecondarySite cmdlet results in an exception that resembles the following:

    Value of '1/1/1900 12:00:00 AM' is not valid for 'Value'. 'Value' should be between 'MinDate' and 'MaxDate'.
    Parameter name: Value

    Note If this cmdlet was previously used to create a distribution point, and if that distribution point now displays these symptoms, you have to re-create the distribution point for the properties to be displayed.

  • The Set-CMSystemHealthValidatorPointComponent cmdlet fails when you use it with the -SiteSystemServerName parameter. Additionally, you receive an error message that resembles the following:

    Set-CMSystemHealthValidatorPointComponent : No object corresponds to the specified parameters.

  • The Set-CMSite cmdlet may return an incorrect message that resembles the following:

    WARNING: Cannot get the BGB port instance, this site is NOT SP1 site or some DB data corruption.
    Set-CMSite : Validation of input parameters failed. Cannot continue.

  • The New-CMClientSetting cmdlet incorrectly enables you to create "Default"-type client settings.

  • The Remove-CMDeploymentType cmdlet returns Null instead of an error condition when a specified deployment type name does not exist.

  • The New-CMTaskSequence cmdlet fails in multiple scenarios.

  • The Add-CMSoftwareUpdatePoint cmdlet creates a software update point that appears in the administrator console but cannot synchronize with WSUS.

  • The Add-CMDistributionPoint cmdlet allows for creating an HTTPS distribution point only when you use it with the -ValidateContentSchedule parameter.

    Note This update adds an additional parameter, -EnableSSL, to allow for control of SSL mode independent of the value that is passed to the -ClientConnectionType parameter.

  • The New-CMGlobalCondition cmdlet incorrectly requires use of the -WhereClause parameter.

  • The Install-CMClient cmdlet does not work without use of the -DeviceID parameter.

  • The Start-CMApplicationDeployment cmdlet fails when it is used with Windows Store, Apple Store, or Google Play applications because the expectation is that the content exists on a distribution point.

  • The Export-CMDriverPackage cmdlet fails used with the following parameters:

    • -Name

    • -ID

    • -InputObject

    Additionally, you receive error messages that resemble the following:

    Export-CMDriverPackage : Value cannot be null.

    Parameter name: parameterName

  • You cannot set the Copy the content in this package to a package share on distribution points package property by using Windows PowerShell.

  • You cannot use the Set-CMPackage cmdlet to remove the name of a package share.

    Note The -ShareType parameter is removed.

    To enable or disable sharing, use the new -ShareContent <bool> parameter.

  • The Start-CMPackageDeployment cmdlet fails when the -DeployPurpose parameter is defined as Required. Additionally, you receive error messages that resemble the following:

    Start-CMPackageDeployment : Parameter set cannot be resolved using the specified named parameters.

    Note For device program deployments, you must specify the -DeviceProgram parameter.

    For standard program deployments, you must specify the -StandardProgram parameter.

  • The New-CMMaintenanceWindow cmdlet fails when you specify a daily maintenance window as the input to the -Schedule parameter. Additionally, you receive error messages that resemble the following:

    New-CMMaintenanceWindow : Operation is not valid due to the current state of the object.

  • The Get-CMUserDataAndProfileConfigurationItemXmlDefinition cmdlet does not return data.

  • The Set-CMClientSetting cmdlet passes an incorrect value to the -MaxTransferRateOffSchedule parameter.

  • The Set-CMClientSetting cmdlet does not validate the input that is passed to any of the following parameters:

    • -PortalUrl

    • -Priority

    • -Setting

    • -ForceRebootPeriod

  • The Set-CMSoftwareMeteringRule cmdlet does not use the -NewProductName parameter. Additionally, you receive error message that resemble the following:

    Set-CMSoftwareMeteringRule : Parameter set cannot be resolved by using the specified named parameters.

  • The Set-CMSoftwareUpdateAutoDeploymentRule cmdlet is missing multiple languages from the list available to the -LanguageSelection parameter.

    Note After you install this update, the list of languages is removed as a parameter and validated internally to the cmdlet.

  • The Remove-CMApplicationRevisionHistory cmdlet and the Restore-CMApplicationRevisionHistory cmdlet do not work when you use them together with the -ID parameter.

  • The Get-CMAccessLicense cmdlet requires the -License parameter instead of returning all licenses when you use it without any parameters.

  • The Start-CMContentDistribution cmdlet and the Remote-CMContentDistribution cmdlet return inaccurate warning messages.

  • The Set-CMProgram cmdlet together with the -InputObject parameter expects an instance of SMS_Package instead of SMS_Program.

    Note For modifications to standard programs, the -StandardProgram parameter must be specified.

    For modifications to device programs, the -DeviceProgram parameter must be specified

  • The Set-CMPowerControl cmdlet does not validate the -PowerControlType parameter.

  • The Set-CMDeviceOwnership cmdlet does not validate the -OwnershipType parameter.

  • The Set-CMTrustedRootCertificateProfileConfigurationItem cmdlet incorrectly defines the -DesiredConfigurationDigestPath parameter as optional.

  • The Get-CMAssetIntelligenceSynchronizationPoint cmdlet returns a Null object. This prevents it from being used as input to other cmdlets.

  • The Import-CMBaseline cmdlet and the Import-CMConfigurationItem cmdlet are missing the -Force parameter to suppress security alerts for content signatures.

  • An "Argument Out of Range" exception appears in the Administrator Console when you view properties for a distribution point. This occurs for distribution points that are created by using the Add-CMDistributionPoint cmdlet and the -EnableMulticast parameter.

  • The Start-CMPackageDeployment cmdlet prevents a package from being deployed when there are no source files.

  • The Start-CMPackageDeployment cmdlet fails when you use it with device programs.

  • The Set-CMDistributionPoint cmdlet returns a "KeyNotFoundException message when you use it together with the -AddBoundaryGroup parameter or the -RemoveBoundaryGroup parameter.

  • The Remove-CMDeploymentType cmdlet returns a "NullReferenceException" message when you use it together with the -DeploymentTypeName parameter or the -DeploymentTypeID parameter.

  • The New-CMMigrationJob cmdlet fails when you migrate collections.

Start-CMDistributionPointUpgrade cmdlet

When you use the Start-CMDistributionPointUpgrade cmdlet to upgrade a shared distribution point to a Microsoft System Center 2012 R2 Configuration Manager distribution point, the cmdlet fails. This problem occurs if a secondary site is referenced in the -sitecode parameter. For more information about this problem, see The Start-CMDistributionPointUpgrade cmdlet fails in System Center 2012 R2 Configuration Manager.

Additional changes

  • The -OnFastNetworkMode parameter is added to the Add-CMDeploymentType cmdlet for use together with the -AppV5xInstaller parameter set.

  • The Maximum allowed run time (minutes): setting cannot be defined when you use the SetByNamePropertyDeepLinkInstaller parameter set for the Set-CMDeploymentType cmdlet.

  • The following cmdlets support configuring additional image properties:

    • Set-CMOperatingSystemImage,

    • Set-CMOperatingSystemInstaller

    • Set-CMBootImage

  • The Set-CMDriverPackage cmdlet adds more parameters to set driver package properties.

  • Multiple Get- and Remove- cmdlets now support wild-card characters in query parameters. This includes the following cmdlets:

    • Get-CMAccount

    • Get-CMActiveDirectoryForest

    • Get-CMActiveDirectorySite

    • Get-CMAdministrativeUser

    • Get-CMAlert

    • Get-CMAlertSubscription

    • Get-CMAntimalwarePolicy

    • Get-CMApplication

    • Get-CMApplicationCatalogWebServicePoint

    • Get-CMApplicationCatalogWebsitePoint

    • Get-CMAppVVirtualEnvironment

    • Get-CMAssetIntelligenceCatalogItem

    • Get-CMAutomaticAmtProvisioningStatus

    • Get-CMBaseline

    • Get-CMBaselineXmlDefinition

    • Get-CMBoundary

    • Get-CMBoundaryGroup

    • Get-CMCategory

    • Get-CMClientAuthCertificateProfileConfigurationItem

    • Get-CMClientSetting

    • Get-CMCloudDistributionPoint

    • Get-CMComponentStatusSetting

    • Get-CMConfigurationItem

    • Get-CMConfigurationItemHistory

    • Get-CMConfigurationItemXmlDefinition

    • Get-CMDeployment

    • Get-CMDeploymentStatus

    • Get-CMDevice

    • Get-CMDeviceCollection

    • Get-CMDistributionPoint

    • Get-CMDistributionPointGroup

    • Get-CMDriver

    • Get-CMDriverPackage

    • Get-CMEndpointProtectionPoint

    • Get-CMEnrollmentPoint

    • Get-CMEnrollmentProxyPoint

    • Get-CMFallbackStatusPoint

    • Get-CMGlobalCondition

    • Get-CMHardwareRequirement

    • Get-CMInitialModifiableSecuredCategory

    • Get-CMIPSubnet

    • Get-CMManagementPoint

    • Get-CMManagementPointComponent

    • Get-CMMigrationCollection

    • Get-CMOperatingSystemImage

    • Get-CMOperatingSystemImageUpdateSchedule

    • Get-CMOperatingSystemInstaller

    • Get-CMPackage

    • Get-CMProgram

    • Get-CMRemoteConnectionProfileConfigurationItem

    • Get-CMRemoteConnectionProfileConfigurationItemXmlDefinition

    • Get-CMReportingServicePoint

    • Get-CMSecurityRole

    • Get-CMSecurityScope

    • Get-CMSite

    • Get-CMSitesystemServer

    • Get-CMSoftwareInventory

    • Get-CMSoftwareMeteringRule

    • Get-CMsoftwareUpdate

    • Get-CMSoftwareUpdateDeploymentPackage

    • Get-CMSoftwareUpdateGroup

    • Get-CMSoftwareUpdateLicnese

    • Get-CMSoftwareUpdatePoint

    • Get-CMStateMigrationPoint

    • Get-CMStatusMessageQuery

    • Get-CMStatusSummarizer

    • Get-CMSystemHealthValidatorPoint

    • Get-CMTaskSequence

    • Get-CMTrustedRootCertificateProfileConfigurationItem

    • Get-CMUser

    • Get-CMUserCollectoin

    • Get-CMUserDataAndProfileConfigurationItem

    • Get-CMUserDataAndProfileConfigurationItemXmlDefinition

    • Get-CMUserDeviceAffinity

    • Get-CMVpnProfileConfigurationItem

    • Get-CMVpnProfileConfigurationItem

    • Get-CMWindowsFirewallPolicy

    • Get-CMWinPEOptionalComponentInfo

    • Get-CMWirelessProfileConfigurationItem

    • Remove-CMAccount

    • Remove-CMAlertSubscription

    • Remove-CMAmtProvisioningDataBase

    • Remove-CMApplication

    • Remove-CMApplicationCatalogWebServicePoint

    • Remove-CMApplicationCatalogWebSitePoint

    • Remove-CMAppVVirtualEnvironment

    • Remove-CMAssetIntelligenceSynchronizationPoint

    • Remove-CMBoundaryGroup

    • Remove-CMClientSetting

    • Remove-CMConfigurationItem

    • Remove-CMDevice

    • Remove-CMDeviceCollectoin

    • Remove-CMDistributionPoint

    • Remove-CMDriver

    • Remove-CMEndpointProtectionPoint

    • Remove-CMEnrollmentPoint

    • Remove-CMEnrollmentProxyPoint

    • Remove-CMFallbackStatusPoint

    • Remove-CMGlobalCondition

    • Remove-CMManagementPoint

    • Remove-CMOperatingSystemImage

    • Remove-CMOperatingSystemInstaller

    • Remove-CMProgram

    • Remove-CMReportingServicePoint

    • Remove-CMSecurityRole

    • Remove-CMSecurityScope

    • Remove-CMSoftwareMeteringRule

    • Remove-CMSoftwareUpdateDeploymentPackage

    • Remove-CMSoftwareUpdatePoint

    • Remove-CMStateMigrationPoint

    • Remove-CMStatusMessageQuery

    • Remove-CMSystemHealthValidatorPoint

    • Remove-CMUser

    • Remove-CMUserCollection

    • Remove-DistributionPointGroup

    • Remove-OutOfBandServicePoint

  • The Set-CMClientSetting cmdlet supports new parameters based on the kind of client setting. These parameters must be used when you change the settings of the same name.

    • -CloudServicesSettings

    • -EndpointProtectionSettings

    • -RemoteToolsSettings

    • -PowerManagementSettings

    • -StateMessageSettings

    • -UserDeviceAffinitySettings

    • -BitsSettings

    • -ClientPolicySettings

    • -ComplianceSettings

    • -ComputerAgentSettings

    • -ComputerRestartSettings

    • -MeteredNetworkSettings

    • -EnrollmentSettings

    • -HardwareInventorySettings

    • -NetworkAccessProtectionSettings

    • -SoftwareDeploymentSettings

    • -SoftwareMeteringSettings

    • -SoftwareUpdatesSettings

    • -SoftwareInventorySettings

  • The Get-CMDeviceCollectionVariable cmdlet now lets you display all variables in a specific collection.

Known issues

  • The New-CMMigrationJob cmdlet returns errors that resemble the following when a nested collection is pasted to the -MigrationCollection parameter:

    New-CMMigrationJob : Select at least one collection to continue.

  • Some cmdlets may return a quota violation when you work with large result sets (usually several thousand objects). To prevent this issue, change the query that is used to return fewer results.

  • The Set-CMDistributionPoint cmdlet does not update the certificate expiration value as expected when you use it together with the -CertificateExpirationTimeUtc parameter.

  • Because of additional changes to the underlying Windows PowerShell framework code that is used by multiple cmdlets, some cmdlets will no longer accept arrays as inputs for certain parameters. Use Get-help <cmdlet_name> to verify the syntax and input types for a given cmdlet.

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

What affected your experience?

Thank you for your feedback!