Sunteți pe pagina 1din 15

System Center Configuration

Manager Cmdlet Library


changes
1604 Update (build 1189)
Note: The 1601 version of the System Center Configuration Manager Cmdlet Library is the baseline for these
changes. This release replaces the previous 1604 release (build 1182).
This update applies to the following System Center Configuration Manager releases:
 System Center 2012 Configuration Manager R2 SP1
 System Center 2012 Configuration Manager SP2
 System Center Configuration Manager Current Branch

Important changes
Remove-CM* cmdlets no longer terminate the pipeline if trying to remove an
object that does not exist
In previous releases, if trying to remove an object that does not exist, the pipeline would terminate. In this
release a change was made to this behavior to be consistent with PowerShell standards. If an object is not
found, an error is written but the pipeline does not terminate. To restore previous behavior, add -
ErrorAction Stop.

Configuration Manager console trace logging


The Cmdlet Library now has the ability to output Configuration Manager console framework trace logging for
additional troubleshooting details. This should only be used for troubleshooting purposes.

To enable this logging, set $CMPSAdminConsoleFxTrace = 1 and $DebugLogging = Continue. By


default, “Warning” and higher severity messages are logged when console trace logging is enabled. To
configure the logging level, set
[Microsoft.ConfigurationManagement.ManagementProvider.ConnectionManagerBase]::Sms
TraceSource.Switch.Level.

Detection and error reporting when passing an IResultObject value into a string
parameter
If a cmdlet detects that an IResultObject is passed to a parameter expecting a string value, it will now fail with
a clear error.

If this check reports a false positive, it can be disabled by setting $CMPSSkipParameterInputChecks=1.


Example
PR1:\> $c = Get-CMCollection -Name "All Systems"
PR1:\> Set-CMCollection -Name $c

Set-CMCollection : An IResultObject value was specified as value for a string


parameter. If supported by the cmdlet, this object may be pipelined. Otherwise a
specific object property must be specified as the parameter value.

Improved error reporting for permissions-related failures


Failures that occur in cmdlets due to missing or incorrect permissions will now report actionable errors.

Update check logic


In previous releases, the check for an updated version of the Cmdlet Library was performed on cmdlet
execution if a certain time limit had passed. This check now occurs only when a new CMDrive instance is
created. This change was made to reduce the number of warnings that may be written when there is an
update available. For more information on this feature and how to configure it, please see the
documentation at https://technet.microsoft.com/en-us/library/dn958404.

Get-CM* cmdlets may support “Fast” mode and may emit a warning if it is not
used
Some Get cmdlets now have a Fast parameter. This parameter allows the cmdlet to return objects without
automatically refreshing lazy properties. Retrieving lazy property values can cause additional network traffic
and can slow down cmdlet execution. If lazy properties are not used Fast should be supplied as a cmdlet
parameter.

To provide visibility into this change, cmdlets that support Fast will write a warning to the console if it is not
used in a case where its presence may be beneficial. This warning can be suppressed by setting
$CMPSSuppressFastNotUsedCheck = $true.

How to provide feedback or report issues


Many of the fixes and improvements described in this document are a result of customer feedback. To leave
feedback and bug reports, go to http://go.microsoft.com/fwlink/?LinkId=529220 (Microsoft Account is
required).

Known issues
These are known issues with the Cmdlet Library that are not resolved in this release.

Cmdlet Library installer


Repair does not fix <installdir>\bin\ConfigurationManager\ConfigurationManager.psd1 file.
Workaround
Uninstall and reinstall the Cmdlet Library

Add/Set-CMDeploymentType
AllowClientsToUseFallbackSourceForContent and OnSlowNetworkMode settings may not apply to
deployment type.
Workaround
Use technology-specific Add/Set-TechnologyNameDeploymentType cmdlet.

Add-CMIntuneSubscription
Cmdlet may fail with "Could not load file or assembly" errors if running on a build earlier than Configuration
Manager 1606.

Workaround
One or both of these workarounds may be necessary if running on a build earlier than Configuration Manager
1606.

Download the Active Directory Authentication Library (ADAL) SDK and copy the assemblies into the
<configurationmanagerconsole>\bin directory. It may be necessary to restart PowerShell.

Download Json.NET version 4.5.11 and copy the Newtonsoft.Json.dll assembly into the
<configurationmanagerconsole>\bin directory. It may be necessary to restart PowerShell.

New-CMApnsCertificateRequest
Cmdlet may fail with "Could not load file or assembly" errors if running on a build earlier than Configuration
Manager 1606.

Workaround
One or both of these workarounds may be necessary if running on a build earlier than Configuration Manager
1606.

Download the Active Directory Authentication Library (ADAL) SDK and copy the assemblies into the
<configurationmanagerconsole>\bin directory. It may be necessary to restart PowerShell.

Download Json.NET version 4.5.11 and copy the Newtonsoft.Json.dll assembly into the
<configurationmanagerconsole>\bin directory. It may be necessary to restart PowerShell.

New-CMDepTokenRequest
Cmdlet may fail with "Could not load file or assembly" errors if running on a build earlier than Configuration
Manager 1606.

Workaround
One or both of these workarounds may be necessary if running on a build earlier than Configuration Manager
1606.

Download the Active Directory Authentication Library (ADAL) SDK and copy the assemblies into the
<configurationmanagerconsole>\bin directory. It may be necessary to restart PowerShell.

Download Json.NET version 4.5.11 and copy the Newtonsoft.Json.dll assembly into the
<configurationmanagerconsole>\bin directory. It may be necessary to restart PowerShell.

Set-CMBaseline
When PassThru is used, an SMS_ConfigurationBaselineInfo object is not returned as expected.

Workaround
Use Get-CMBaseline after Set-CMBaseline to get the expected object.
Set-CMOutOfBandManagementComponent
CertificateTemplate parameter may not properly configure the template.

Wireless parameter may not configure the wireless profile correctly.

Workaround
None

New cmdlets
These are newly-added cmdlets for this release that add new functionality or enhance the functionality of
existing cmdlets.

Auto deployment rule deployment


Added new cmdlets for multiple auto deployment rule deployments:

 Get-CMAutoDeploymentRuleDeployment
 New-CMAutoDeploymentRuleDeployment
 Remove-CMAutoDeploymentRuleDeployment
 Set-CMAutoDeploymentRuleDeployment

These cmdlets require Configuration Manager 1511 or newer.

Certificate registration point


Added new cmdlets for configuring a certificate registration point site role:

 Add-CMCertificateRegistrationPoint
 Get-CMCertificateRegistrationPoint
 Remove-CMCertificateRegistrationPoint
 Set-CMCertificateRegistrationPoint

Example
Add-CMCertificateRegistrationPoint -SiteSystemServerName myserver.contoso.com -
Certificate "e:\mycert.cer"

Collection
Added new cmdlets for working with collections and collection members:

 Invoke-CMCollectionUpdate (supersedes Invoke-CMUserCollectionUpdate and Invoke-


CMDeviceCollectionUpdate)
 Get-CMResource
 Get-CMCollectionMember
 Get-CMCollectionSettings
 Remove-CMResource

Added new cmdlets for configuring power management settings for a collection:

 New-CMPowerManagementCustomPlan
 Set-CMCollectionPowerManagement

These cmdlets require Configuration Manager 1603 or newer.


Conditional access
Added new cmdlets for configuring conditional access policies for on-premises Exchange:

 Get-CMConditionalAccessPolicy
 New-CMConditionalAccessPolicy
 Remove-CMConditionalAccessPolicy
 Set-CMConditionalAccessPolicy

These cmdlets require Configuration Manager 1602 or newer.

Hybrid management
These cmdlets require a valid Intune subscription. Unless noted otherwise, these cmdlets require
Configuration Manager 1511 or newer.

Added new cmdlets for remote lock and PIN reset (Configuration Manager 2012 SP2 and newer):

 Get-CMDeviceAction
 Invoke-CMDeviceAction

Added new cmdlets for configuring an Intune subscription:

 Add-CMIntuneSubscription (see Known Issues)


 Get-CMIntuneSubscription
 Remove-CMIntuneSubscription
 Set-CMIntuneSubscription

Added new cmdlets for configuring device support for an Intune subscription:

 Set-CMIntuneSubscriptionAndroidProperty
 Set-CMIntuneSubscriptionAppleDepProperty
 Set-CMIntuneSubscriptionAppleMdmProperty (for iOS or OSX management)
 Set-CMIntuneSubscriptionPassportForWorkProperty
 Set-CMIntuneSubscriptionWindowsPhoneProperty
 Set-CMIntuneSubscriptionWindowsProperty

Added new cmdlets for configuring device management enrollment managers:

 Add-CMMdmEnrollmentManager
 Get-CMMdmEnrollmentManager
 Remove-CMMdmEnrollmentManager

Added new cmdlets for Apple device management key generation:

 New-CMApnsCertificateRequest (see Known Issues)


 New-CMDepTokenRequest (see Known Issues)

Service connection point


Added new cmdlets for configuring a service connection point:

 Add-CMServiceConnectionPoint
 Get-CMServiceConnectionPoint
 Remove-CMServiceConnectionPoint
 Set-CMServiceConnectionPoint

These cmdlets require Configuration Manager 1511 or newer.

Settings
Added new cmdlet for importing a wireless profile:

 Import-CMWirelessConfigurationItem

Added new cmdlets for e-mail profile creation:

 Get-CMEmailProfile
 New-CMEmailProfile
 Remove-CMEmailProfile
 Set-CMEmailProfile

Added new cmdlets for certificate profile creation:

 Get-CMCertificateProfilePfx
 Get-CMCertificateProfileScep
 Get-CMCertificateProfileTrustedRootCA
 New-CMCertificateProfilePfx
 New-CMCertificateProfileScep
 New-CMCertificateProfileTrustedRootCA
 Remove-CMCertificateProfilePfx
 Remove-CMCertificateProfileScep
 Remove-CMCertificateProfileTrustedRootCA
 Set-CMCertificateProfilePfx
 Set-CMCertificateProfileScep
 Set-CMCertificateProfileTrustedRootCA

Added new cmdlets for user client certificate private key import:

 Get-CMClientCertificatePfx
 Import-CMClientCertificatePfx
 Remove-CMClientCertificatePfx

SMS Provider query helpers


Added new cmdlets to simplify performing ad-hoc functions against the SMS Provider from the CMSite drive:

 Invoke-CMWmiMethod
 Invoke-CMWmiQuery

These cmdlets can perform functions directly against the SMS Provider without needing to specify
namespaces, credentials, or other configuration information.

Task sequence media creation


Added new cmdlets for creating task sequence media:

 New-CMBootableMedia
 New-CMCaptureMedia
 New-CMPrestageMedia
 New-CMStandaloneMedia

These cmdlets replace New-CMTaskSequenceMedia, which is now deprecated.

Windows 10 servicing plan


Added new cmdlets for configuring a Windows servicing plan:

 Get-CMWindowsServicingPlan
 New-CMWindowsServicingPlan
 Remove-CMWindowsServicingPlan
 Set-CMWindowsServicingPlan

These cmdlets require Configuration Manager 1511 or newer.

Cmdlet changes
These are changes that have been made to existing cmdlets for this release. Changes may be new
functionality, bug fixes, or deprecations, and may be breaking. If you use one of the cmdlets or feature areas
listed in this section, please carefully review the changes to understand how they may affect your use.

Miscellaneous changes
Bugs that were fixed
Site role cmdlets may not validate that a specified connection account user is valid and present in the site.

Some Application and Certificate cmdlets may silently fail if no matching results are found (regression from
Fall 2015 release).

Non-breaking changes
Performance improvements for Driver-related cmdlets.

Performance improvements for many Collection-related cmdlets.

Several cmdlets that worked with lockable objects (applications, software updates) were updated to ensure
proper locking and reporting. This includes the following cmdlet families: CMApplication,
CMSoftwareUpdate, CMBaseline, CMDriver, CMPackage, and CMTaskSequence.

Add-CMAppv5XDeploymentType
Bugs that were fixed
Publisher details are not being added to the deployment type.

Add-CMAppvDeploymentType
Bugs that were fixed
Publisher details are not being added to the deployment type.

Add-CMCollectionToAdministrativeUser
Bugs that were fixed
UserId parameter is not processed.
Add-CMEnrollmentProxyPoint
Bugs that were fixed
Enrollment proxy point may not be correctly configured.

Add-CMGooglePlayDeploymentType
Bugs that were fixed
Details for mobile application management may be missing from created deployment type on Current
Branch.

Add-CMManagementPoint
Bugs that were fixed
SqlServerFqdn parameter does not validate that a correct FQDN is used.

Add-CMIosDeploymentType
Bugs that were fixed
Details for mobile application management may be missing from created deployment type on Current
Branch.

Add-CMMsiDeploymentType
Non-breaking changes
New SourceUpdateProductCode parameter for setting the update product code.

New InstallationBehaviorType parameters for setting the interaction method of the deployment type.

Add-CMSoftwareUpdateToGroup
Non-breaking changes
Add support for adding multiple updates to a group.

Add-CMWindowsStoreDeploymentType
Bugs that were fixed
Cmdlet may fail with an unclear error on Configuration Manager 2012 sites if the DeploymentTypeName
parameter is not used.

Clear-CMPxeDeployment
Non-breaking changes
Added additional logging, and improved error handling when a failure occurs.

Performance improvements.

Copy-CMSecurityRole
Non-breaking changes
New NewRoleName parameter to specify an alternate role name if Overwrite is false.
Disable-CMTaskSequence
Deprecations
Cmdlet has been deprecated. Set-CMTaskSequence should be used to enable or disable a task sequence.

Enable-CMTaskSequence
Deprecations
Cmdlet has been deprecated. Set-CMTaskSequence should be used to enable or disable a task sequence.

Export-CMAntimalwarePolicy
Bugs that were fixed
Pipelined object may be disposed.

Export-CMSecurityRole
Non-breaking changes
New NewRoleName parameter to specify an alternate role name if Overwrite is false.

Get-CM*Component
Deprecations
SiteSystemServerName parameter.

Get-CMObjectSecurityScope
Bugs that were fixed
Cannot retrieve security scope for an application approval request.

Get-CMSiteRole
Non-breaking changes
Now supports getting site roles from a pipelined site system server object.

Get-CMSoftwareUpdateAutoDeploymentRule
Breaking changes
Cmdlet will no longer output Windows 10 servicing plans. To restore this behavior, either
add -IsServicingPlan $true, or use Get-CMWindowsServicingPlan.

Get-CMSoftwareUpdateLicense
Bugs that were fixed
Cmdlet may not return expected objects.

Non-breaking changes
Performance improvements.

Import-CMAntimalwarePolicy
Bugs that were fixed
Cmdlets may fail on Configuration Manager 1511 or newer with a “Not Found” error.
Import-CMComputerInformation
Non-breaking changes
SMBiosGuid parameter now accepts any valid GUID string format.

New UserName and UserAccountMigrationBehavior parameters to specify migration behavior for user
accounts when using SourceComputer.

Import-CMDriver
Bugs that were fixed
Returned object is not usable.

Import-CMSecurityRole
Non-breaking changes
New NewRoleName parameter to specify an alternate role name if Overwrite is false.

Invoke-CMContentValidation
Non-breaking changes
Performance improvements.

Invoke-CMQuery
Bugs that were fixed
Query execution does not honor “Limit to collection” setting and may return unexpected results.

Invoke-CMRemoteControl
Bugs that were fixed
SiteSystemServerName parameter fails to find a site system.

Cmdlet execution may fail if SiteCode parameter is not used.

Breaking changes
Cmdlet no longer accepts array values for SiteSystemRole, SiteCode, DeviceName, or DeviceId parameters.

Move-CMObject
Bugs that were fixed
Cmdlet may fail with an “Object not found” error.

New-CMBoundary
Bugs that were fixed
Cmdlet allows for creating boundaries with duplicate names.

New-CMBoundaryGroup
Non-breaking changes
Added support for configuring the site system servers associated with the boundary group.
New-CMConfigurationItem
Bugs that were fixed
Name is not a required parameter and will create an invalid configuration item if not used.

New-CMDeviceCollection
Bugs that were fixed
LimitingCollectionID is not validated to be a valid or existing collection.

New-CMOperatingSystemImageUpdateSchedule
Bugs that were fixed
Cmdlet may not properly configure the update schedule.

New-CMSecurityScope
Bugs that were fixed
Created security scope is not properly associated with the current user.

New-CMSoftwareUpdateAutoDeploymentRule
Bugs that were fixed
DeployWithoutLicense parameter may not configure the rule as expected.

Some rules may not be processed correctly.

Non-breaking changes
Performance improvements.

Support for additional update types.

New-CMSoftwareUpdateGroup
Non-breaking changes
Add support for adding updates to a group through the pipeline.

Add support for adding updates to a group by name.

New-CMTaskSequenceMedia
Bugs that were fixed
ExpirationDate and StartDate may not be correct in the created boot media.

Deprecations
This cmdlet is now deprecated. New task sequence media creation cmdlets can be used instead.

New-CMWirelessProfileConfigurationItem
Bugs that were fixed
Cmdlet may fail to create a new configuration item from a digest.
Out-CMSignedWindowsMobileCab
Bugs that were fixed
Cmdlet does not have any usable parameters.

Remove-CMAutoDeploymentRuleDeployment
Bugs that were fixed
Force parameter is missing.

Remove-CMCategory
Bugs that were fixed
Pipelined category object may be disposed.

Remove-CMContentDistribution
Non-breaking changes
Performance improvements.

Remove-CMDeployment
Bugs that were fixed
Pipelined deployment object may be disposed.

Remove-CMIntuneSubscription
Bugs that were fixed
Cmdlet does not properly remove an Intune subscription.

Remove-CMMaintenanceWindow
Non-breaking changes
Name parameter now supports wildcards.

Remove-CMUser
Bugs that were fixed
Cmdlet does not validate that the pipelined object is a user resource.

Non-breaking changes
Name parameter now supports “SMSID” (DOMAIN\user) format. In previous releases, only the “Name”
(DOMAIN\user (full name)) format was supported.

Set-CMAntimalwarePolicy
Bugs that were fixed
Cmdlets may fail on Configuration Manager 1511 or newer with a “Not Found” error.

Set-CMApplication
Non-breaking changes
Performance improvements.
Set-CMApplicationDeployment
Bugs that were fixed
AvailableDate/AvailableTime parameter values may not be processed.

Non-breaking changes
New CollectionId parameter

Set-CMBoundaryGroup
Non-breaking changes
Added support for configuring the site system servers associated with the boundary group.

Example
$siteServer = @{ "myserver.contoso.com" = "FastLink" }
$boundaryGroup | Set-CMBoundaryGroup –AddSiteSystemServer $siteServer
Set-CMClientSetting
Non-breaking changes
New UseNewSoftwareCenter parameter for enabling the new Software Center experience (Configuration
Manager 1511 and newer only).

Set-CMConditionalAccessPolicy
Bugs that were fixed
AddExcludedCollectionName, AddExcludedCollectionId, RemoveExcludedCollectionName, and
RemoveExcludedCollectionId parameters are not processed.

Set-CMDiscoveryMethod
Non-breaking changes
New Recursive, IncludeGroups, RemoveActiveDirectoryContainer, AddActiveDirectoryContainer
parameters for modifying user and system discovery settings in place.

Deprecations
ActiveDirectoryContainer parameter.

Set-CMDistributionPoint
Bugs that were fixed
Disabling HTTPS support for a distribution point may leave configuration in an incorrect state.

Non-breaking changes
New AddMacAddressForRespondingPxeRequest, RemoveMacAddressForRespondingPxeRequest,
ClearMacAddressForRespondingPxeRequest parameters to provide finer control over MAC addresses
supported for PXE requests.

Deprecations
MacAddressForRespondingPxeRequest and RespondToAllNetwork parameters.
Set-CMDriver
Bugs that were fixed
Pipelined driver object may be disposed.

Non-breaking changes
Performance improvements.

Set-CMHierarchySetting
Bugs that were fixed
AutoResolveClientConflict parameter value may not be processed.

AutoUpgradeDays parameter value may not be processed.

Set-CMMsiDeploymentType
Non-breaking changes
New SourceUpdateProductCode parameter for setting the update product code.

New InstallationBehaviorType parameters for setting the interaction method of the deployment type.

Set-CMObjectSecurityScope
Bugs that were fixed
Cannot configure security scope for a distribution point.

Set-CMProgram
Bugs that were fixed
Cmdlet incorrectly prompts for ProgramName when using pipelined SMS_Program object.

Set-CMRemoteConnectionProfileConfigurationItem
Bugs that were fixed
Cmdlet may not fail if invalid parameter combinations are used.

Set-CMSite
Bugs that were fixed
EnableLowFreeSpaceAlert parameter value changes may not be applied to the site settings.

Set-CMSiteMaintenanceTask
Bugs that were fixed
DeleteOlderThanDays parameter values may not be processed.

Set-CMSiteSystemServer
Bugs that were fixed
Changes may not apply as expected to a pipelined site system server object.

UseSiteServerAccount parameter is not applying as expected to the site server.


Set-CMSoftwareUpdateAutoDeploymentRule
Bugs that were fixed
Some rules may not be processed correctly.

Non-breaking changes
Performance improvements.

Support for additional update types.

Set-CMSoftwareUpdateDeploymentPackage
Non-breaking changes
New AddSoftwareUpdate, RemoveSoftwareUpdate, ClearSoftwareUpdate, ClearExpiredSoftwareUpdate,
ClearSupersededSoftwareUpdate, RemoveExpired, RemoveSuperseded, and RefreshDistributionPoint
parameters.

Set-CMSoftwareUpdatePointComponent
Non-breaking changes
New parameters for configuring company (AddCompany/RemoveCompany), product
(AddProduct/RemoveProduct), and product family (AddProductFamily/RemoveProductFamily)
subscriptions.

New EnableCallWsusCleanupWizard parameter to configure WSUS cleanup for a site.

Set-CMTaskSequence
Non-breaking changes
New AddOperatingSystemPlatform, RemoveSupportedOperatingSystemPlatform, and RunOnAnyPlatform
parameters for configuring the supported platforms for a task sequence.

Start-CMContentDistribution
Non-breaking changes
Performance improvements.

Start-CMTaskSequenceDeployment
Bugs that were fixed
Cmdlet does not enforce uniqueness on the specified deployment collection.

Non-breaking changes
New CollectionId and Collection parameters to support more flexibility in specifying the deployment
collection.

Update-CMDistributionPoint
Bugs that were fixed
Pipelined distribution point may be disposed.

S-ar putea să vă placă și