Configuration Manager Cmdlet Library changes for version 1910
Applies to: Configuration Manager (current branch)
Note
Configuration Manager current branch version 1906 is the baseline for these changes. For more information, see Configuration Manager Cmdlet Library changes for version 1906.
Important changes
New cmdlets
New-CMDuplicateHardwareIdGuid
Use this cmdlet to add duplicate hardware identifiers by GUID.
New-CMDuplicateHardwareIdGuid -Id 24D0F753-B2E2-4D9C-B07C-099C4FC1EF3C
New-CMDuplicateHardwareIdMacAddress
Use this cmdlet to add duplicate hardware identifiers by MAC address.
New-CMDuplicateHardwareIdMacAddress -MacAddress 01:02:03:04:05:E0
New-CMThirdPartyUpdateCatalog
Use this cmdlet to create a new third-party updates catalog.
New-CMThirdPartyUpdateCatalog -DownloadUrl $downloadUrl -PublisherName $publisher -Name $name -Description $description -SupportUrl $supportUrl -SupportContact $supportContact
Get-CMThirdPartyUpdateCatalog
Use this cmdlet to get a third-party updates catalog.
Get-CMThirdPartyUpdateCatalog
Get-CMThirdPartyUpdateCatalog -Id $id
Get-CMThirdPartyUpdateCatalog -Name $name
Get-CMThirdPartyUpdateCatalog -SiteCode $siteCode
Get-CMThirdPartyUpdateCatalog -IsSyncEnabled $true
Get-CMThirdPartyUpdateCatalog -IsCustomCatalog $true
Set-CMThirdPartyUpdateCatalog
Use this cmdlet to modify a third-party updates catalog.
Set-CMThirdPartyUpdateCatalog -Name $name -NewName $newName
Set-CMThirdPartyUpdateCatalog -ThirdPartyUpdateCatalog $catalog -Description $newdescription
$catalog | Set-CMThirdPartyUpdateCatalog -SupportContact $newSupportContact -SupportUrl $newSupportUrl
Remove-CMDuplicateHardwareIdGuid
Use this cmdlet to remove duplicate hardware identifiers by GUID.
Remove-CMDuplicateHardwareIdGuid -Id 24D0F753-B2E2-4D9C-B07C-099C4FC1EF3C
Remove-CMDuplicateHardwareIdGuid -InputObject $myGuid #(<IResultObject#SMS_CommonSmbiosGuids>)
Remove-CMDuplicateHardwareIdMacAddress
Use this cmdlet to remove duplicate hardware identifiers by MAC address.
Remove-CMDuplicateHardwareIdMacAddress -MacAddress 01:02:03:04:05:E0
Remove-CMDuplicateHardwareIdMacAddress -InputObject $myMacAddress #(<IResultObject#SMS_CommonMacAddresses>)
Remove-CMThirdPartyUpdateCatalog
Use this cmdlet to remove a third-party updates catalog.
Remove-CMThirdPartyUpdateCatalog -Id $catalog.ID -Force
Remove-CMThirdPartyUpdateCatalog -Name $catalog.Name -Force
Remove-CMThirdPartyUpdateCatalog -ThirdPartyUpdateCatalog $catalog -Force
$catalog | Remove-CMThirdPartyUpdateCatalog -Force
Removed cmdlets
The following cmdlets are removed with the end of hybrid service:
Add-CMIntuneSubscription
Add-CMMdmEnrollmentManager (Add-CMIntuneDeviceEnrollmentManager)
Export-CMWindowsEnrollmentProfile
Get-CMConditionalAccessPolicy (Get-CMOnPremConditionalAccessPolicy)
Get-CMCorpOwnedDevice
Get-CMDeviceActionState (Get-CMDeviceAction)
Get-CMIntuneSubscription
Get-CMIosEnrollmentProfile
Get-CMMdmEnrollmentManager (Get-CMIntuneDeviceEnrollmentManager)
Get-CMWindowsEnrollmentProfile
Get-CMWindowsEnrollmentProfilePackage
Invoke-CMDeviceAction
New-CMApnsCertificateRequest
New-CMConditionalAccessPolicy (New-CMOnPremConditionalAccessPolicy)
New-CMDepTokenRequest
New-CMIosEnrollmentProfile
New-CMWindowsEnrollmentProfile
Remove-CMConditionalAccessPolicy (Remove-CMOnPremConditionalAccessPolicy)
Remove-CMCorpOwnedDevice
Remove-CMIntuneSubscription
Remove-CMIosEnrollmentProfile
Remove-CMMdmEnrollmentManager (Remove-CMIntuneDeviceEnrollmentManager)
Remove-CMWindowsEnrollmentProfile
Remove-CMWindowsEnrollmentProfilePackage
Set-CMConditionalAccessPolicy (Set-CMOnPremConditionalAccessPolicy)
Set-CMIntuneSubscription
Set-CMIntuneSubscriptionAndroidProperty (Set-CMIntuneSubscriptionAndroidProperties)
Set-CMIntuneSubscriptionAppleDepProperty
Set-CMIntuneSubscriptionAppleProperty
(aliases:)
- Set-CMIntuneSubscriptionMacOSProperties
- Set-CMIntuneSubscriptionIosProperties
- Set-CMIntuneSubscriptionMacOSProperty
- Set-CMIntuneSubscriptionIosProperty
- Set-CMIntuneSubscriptionAppleMdmProperty
Set-CMIntuneSubscriptionPassportForWorkProperty
Set-CMIntuneSubscriptionWindowsPhoneProperty (Set-CMIntuneSubscriptionWindowsPhoneProperties)
Set-CMIntuneSubscriptionWindowsProperty (Set-CMIntuneSubscriptionWindowsProperties)
Set-CMIosEnrollmentProfile
Set-CMIosEnrollmentProfileAssignment
Set-CMWindowsEnrollmentProfile
Deprecated cmdlets
None
Known issues
The following items are known issues with the Cmdlet Library that aren't resolved in this version.
Import-CMSecurityRole
Cmdlet may fail with a DirectoryNotFoundException error locating the file SecuredRoles.xsd
.
Workaround
- Call
Import-Module
against theConfigurationManager.psd1
file, and not the logical path or module name.
Set-CMSoftwareUpdatePoint
Changes to Schedule may not be shown in the Configuration Manager console even though the underlying SMS Provider object has been changed.
Workaround
- Quit and relaunch the Configuration Manager console.
Resource tracking and recovery (beta)
This version adds new cmdlets to support tracking SMS Provider objects used by the PowerShell runtime, and to clean up these resources when they're no longer needed.
- Disconnect-CMTrackedObject
- Start-CMObjectTracking
- Stop-CMObjectTracking
When you run Start-CMObjectTracking
, the PowerShell runtime tracks IResultObject
objects created by Cmdlet Library cmdlets. For cmdlets that aren't manually cleaned up with .Dispose()
, reclaim them by using Disconnect-CMTrackedObject
against an individual object.
Example
# Reclaim a single tracked object
$o | Disconnect-CMTrackedObject
# Reclaim all tracked objects
Disconnect-CMTrackedObject -All
Once an object is reclaimed, it can no longer be reused or passed to another cmdlet through the object pipeline.
Stop-CMObjectTracking
can be used to turn off object tracking. Previously allocated objects remain active.
Unclaimed resources can cause the SMS Provider to raise quota violation errors. These quota issues typically manifest from working with large sets of SMS Provider objects or in long-running environments.
Note
This feature is experimental and may be subject to change or removal in a future release. It's opt-in and isn't enabled by default.
Cmdlet changes
The following changes have been made to existing cmdlets in this version. Changes may be new functionality, bug fixes, or deprecation. Some changes may be breaking. If you use one of the cmdlets or feature areas listed in this section, carefully review the changes to understand how they may affect your use.
Add-CMDistributionPoint
Non-breaking changes
Now the cmdlet supports use of a duplicated certificate by the -Force
switch:
Add-CMMsiDeploymentType
Bugs that were fixed
Fixed a validation issue for uninstall content location.
Import-CMDriver
Bugs that were fixed
- Fixed an issue for driver that uses txtsetup.oem.
- Fixed an issue if the target driver package has never been distributed before.
New-CMApplicationDeployment
Bugs that were fixed
Fixed bad disposal issue.
New-CMDriverPackage
Non-breaking changes
Added new parameters for manufacturer and model. You can use them for managing the driver catalog, and with task sequence pre-caching.
-DriverManufacturer [string]
-DriverModel [string]
Example
Get-CMDriverPackage | Set-CMDriverPackage -DriverManufacturer "Microsoft" -DriverModel "Surface 2"
Set-CMDriverPackage -PackageId MCS00091 -DriverManufacturer "Microsoft" -DriverModel "Surface 2"
Get-CMDriverPackage | Where-Object {$_.Name -like "Surface Book 2"} | Set-CMDriverPackage -DriverManufacturer "Microsoft" -DriverModel "Surface 2"
New-CMDriverPackage -Name "Surface Book 2 Drivers" -Description "Some descriptive text" -DriverManufacturer "Microsoft" -DriverModel "Surface 2"
New-CMSoftwareUpdateAutoDeploymentRule
Non-breaking changes
The cmdlet now supports the No Deployment Package option when creating the rule.
Example
New-CMSoftwareUpdateAutoDeploymentRule -Collection $collection -Name $name -Architecture X86, Itanium, X64
New-CMTaskSequence
Non-breaking changes
This cmdlet has a new parameter to support high-performance option in task sequence:
-HighPerformance [bool]
New-CMTSStepApplyWindowsSetting
Non-breaking changes
This cmdlets includes new parameters to support the new locale settings in the task sequence step:
-InputLocale [string]
-SystemLocale [string]
-UserLocale [string]
-UILanguage [string]
-UILanguageFallback [string]
Example
To set input locale to Russian (Russia), specify string ru-ru
: -InputLocale "ru-ru"
New-CMTSStepDownloadPackageContent
Bugs that were fixed
Fixed a duplicated package checking issue for adding package.
New-CMTSStepRunCommandLine
Non-breaking changes
Added a new parameter to support output variable option: -OutputVariableName [string]
Get-CMDevice
Bugs that were fixed
Fixed a device query issue in collection that's without access permission.
Get-CMScript
Bugs that were fixed
Fixed a wildcard support issue.
Remove-CMApplicationDeployment
Bugs that were fixed
Fixed bad disposal issue.
Remove-CMDevice
Bugs that were fixed
Fixed a device query issue.
Set-CMBootImage
Non-breaking changes
Added a new parameter to support keyboard layout setting: -InputLocale [string]
Set-CMClientSettingClientPolicy
Non-breaking changes
Added a new parameter to support the client setting for user policy on devices with multiple user sessions: -EnableUserPolicyOnTS [bool]
Set-CMClientSettingSoftwareUpdate
Non-breaking changes
Added new a parameter to support third-party updates: -EnableThirdPartyUpdates [bool]
Example
Set-CMClientSettingSoftwareUpdate -Name $clientDeviceSettingName -Enable $true -EnableThirdPartyUpdates $true
Set-CMClientSettingSoftwareUpdate -DefaultSetting -Enable $true -EnableThirdPartyUpdates $true
Set-CMDistributionPoint
Bugs that were fixed
- Fixed a reassign site code issue.
- Fixed a device query issue.
Non-breaking changes
The cmdlet now supports use of a duplicated certificate by the -Force
switch:
Set-CMDriverPackage
Non-breaking changes
Added new parameters to support manufacturer and model settings:
-DriverManufacturer [string]
-DriverModel [string]
Set-CMMsiDeploymentType
Bugs that were fixed
Fixed a validation issue for uninstall content location.
Set-CMScript
Bugs that were fixed
- Fixed a script text value issue.
- Fixed a wildcard support issue.
Set-CMSite
Bugs that were fixed
- Fixed a script text value issue.
- Fixed a wildcard support issue.
Set-CMSiteSystemServer
Non-breaking changes
Fixed a proxy-related properties setting issue.
Set-CMSoftwareUpdateAutoDeploymentRule
Non-breaking changes
Added new parameters to allow user to set the deployment package for the existing software update auto deployment rule.
-DeploymentPackageName [string]
-DeploymentPackage [IResultObject]
Example
Set-CMSoftwareUpdateAutoDeploymentRule -Name $ReferenceADRName -DeploymentPackageName $null
Set-CMSoftwareUpdateAutoDeploymentRule -Name $ReferenceADRName -DeploymentPackageName $packageName
Set-CMSoftwareUpdateAutoDeploymentRule -Name $ReferenceADRName -DeploymentPackage $null
Set-CMSoftwareUpdateAutoDeploymentRule -Name $ReferenceADRName -DeploymentPackage $package
Set-CMSoftwareUpdateDeployment
Bugs that were fixed
Fixed properties setting issue for -DisableOperationsManagerAlert
and -GenerateOperationsManagerAlert
.
Set-CMSoftwareUpdateDeploymentPackage
Non-breaking changes
Added Force switch to allow you to force remove an expired NAP update: -Force [switch]
Set-CMSoftwareUpdatePointComponent
Non-breaking changes
Added new parameters to support third-party updates options:
-EnableThirdPartyUpdates [bool]
-EnableManualCertManagement [bool]
Added new parameters to support feature update run time options:
-NonFeatureUpdateMaxRuntimeMins [int]
-FeatureUpdateMaxRuntimeMins [int]
Example
Set-CMSoftwareUpdatePointComponent -SiteCode $Site.SiteCode -EnableThirdPartyUpdates $true
Set-CMSoftwareUpdatePointComponent -SiteCode $Site.SiteCode -EnableManualCertManagement $true
Set-CMTaskSequence
Non-breaking changes
Added a new parameter to support the high-performance option in the task sequence: -HighPerformance [bool]
Set-CMTSStepApplyWindowsSetting
Non-breaking changes
Added new parameters to support locale settings in this task sequence step:
-InputLocale [string]
-SystemLocale [string]
-UserLocale [string]
-UILanguage [string]
-UILanguageFallback [string]
Example
To set input locale to Russian (Russia), specify string ru-ru
: -InputLocale "ru-ru"
Set-CMTSStepDownloadPackageContent
Bugs that were fixed
- Fixed a duplicated package checking issue for adding package.
- Fixed a validation issue for adding/removing package
Set-CMTSStepRunCommandLine
Non-breaking changes
New parameter to support output variable option: -OutputVariableName [string]