Configuration Manager版本 1810 的 Cmdlet 库更改

*适用于:Configuration Manager (Current Branch) *

备注

Configuration Manager当前分支版本 1806 是这些更改的基线。 有关详细信息,请参阅版本 1806 的Configuration Manager Cmdlet 库更改

重要更改

New cmdlet

添加以下 cmdlet 以创建部署类型和全局条件的要求规则:

  • New-CMGlobalConditionExpression
  • New-CMRegistryAccessControlEntry
  • New-CMRequirementRuleActiveDirectorySiteValue
  • New-CMRequirementRuleBooleanValue
  • New-CMRequirementRuleCMSiteValue
  • New-CMRequirementRuleCommonValue
  • New-CMRequirementRuleDeviceOwnershipValue
  • New-CMRequirementRuleExistential
  • New-CMRequirementruleExpression
  • New-CMRequirementRuleFileAttributeValue
  • New-CMRequirementRuleFilePermissionValue
  • New-CMRequirementRuleFreeDiskSpaceValue
  • New-CMRequirementRuleInputTypeValue
  • New-CMRequirementRuleOperatingSystemLanguageValue
  • New-CMRequirementRuleOperatingSystemValue
  • New-CMRequirementRuleOUValue
  • New-CMRequirementRuleScreenResolutionValue

Add 和 Set-CM*DeploymentType 支持的 cmdlet 为 GroupDetectionClausesDetectionClauseConnector 添加了参数。

示例

使用规则创建简单表达式
$rule1 = Get-CMGlobalCondition -Name "Total physical memory" | New-CMRequirementRuleCommonValue -Value1 2048 -RuleOperator GreaterEquals
$myRuleExpression = New-CMRequirementRuleExpression -AddRequirementRule $rule1
$myGC = New-CMGlobalConditionExpression -Name "GCExp" -DeviceType Windows -RootExpression $myRuleExpression
添加复杂的全局条件表达式
$ruleProc = Get-CMGlobalCondition -Name "Number of processors" | New-CMRequirementRuleCommonValue -Value1 2 -RuleOperator GreaterEquals
$ruleMem1 = Get-CMGlobalCondition -Name "Total physical memory" | New-CMRequirementRuleCommonValue -Value1 2048 -RuleOperator GreaterThan
$ruleMem2 = Get-CMGlobalCondition -Name "Total physical memory" | New-CMRequirementRuleCommonValue -Value1 4096 -RuleOperator LessEquals
$ruleCPUSpeed1 = Get-CMGlobalCondition -Name "CPU Speed" | New-CMRequirementRuleCommonValue -Value1 5120 -RuleOperator LessEquals
$ruleCPUSpeed2 = Get-CMGlobalCondition -Name "CPU Speed" | New-CMRequirementRuleCommonValue -Value1 1024 -RuleOperator GreaterThan
$expressionProc = New-CMRequirementRuleExpression -AddRequirementRule $ruleProc
$expressionMem = New-CMRequirementRuleExpression -AddRequirementRule $ruleMem1, $ruleMem2 -ClauseOperator And
$expressionCPU = New-CMRequirementRuleExpression -AddRequirementRule $ruleCPUSpeed1, $ruleCPUSpeed2 -ClauseOperator And
$myRuleExpression = New-CMRequirementRuleExpression -RootExpression $expressionProc -AddExpression $expressionMem,$expressionCPU -ClauseOperator And -AddAsGroup -GroupOperator Or
$myGC = New-CMGlobalConditionExpression -Name "GCExp" -DeviceType Windows -RootExpression $myRuleExpression
添加语言规则
$myGC = Get-CMGlobalCondition -Name "Operating System Language" | Where-Object PlatformType -eq 1
$cultureA = [System.Globalization.CultureInfo]::GetCultures([System.Globalization.CultureTypes]::AllCultures) | Where-Object Name -eq "zh"
$cultureB = [System.Globalization.CultureInfo]::GetCultures([System.Globalization.CultureTypes]::AllCultures) | Where-Object Name -eq "zh-CN"
$myRule = $myGC | New-CMRequirementRuleOperatingSystemLanguageValue -RuleOperator NoneOf -Culture $cultureA,$cultureB -IsMobile $False
Set-CMScriptDeploymentType -ApplicationName "myApp" -DeploymentTypeName "myDT" -AddRequirement $myRule
使用规则创建一个简单的表达式。
$clauseFile1 = New-CMDetectionClauseFile -FileName "abc" -Path "c:\abc" -PropertyType Size -ExpectedValue 1024 -ExpressionOperator IsEquals -Value
$clauseFile2 = New-CMDetectionClauseFile -FileName "abc" -Path "c:\abc" -PropertyType Size -ExpectedValue 2048 -ExpressionOperator IsEquals -Value
$clauseFile3 = New-CMDetectionClauseFile -FileName "abc" -Path "c:\abc" -PropertyType Size -ExpectedValue 4096 -ExpressionOperator IsEquals -Value

Set-CMScriptDeploymentType -ApplicationName "testApp1" -DeploymentTypeName "abc" -AddDetectionClause $clauseFile1,$clauseFile2,$clauseFile3 -DetectionClauseConnector @{"LogicalName"=$clauseFile3.Setting.LogicalName;"Connector"="OR"} -GroupDetectionClauses $clauseFile2.Setting.LogicalName, $clauseFile3.Setting.LogicalName

删除了 cmdlet

已弃用的 cmdlet

已知问题

以下项目是未在此版本中解决的 Cmdlet 库的已知问题。

Get-CMAadConditionalAccessPolicy和Set-CMAadConditionalAccessPolicy

这些 cmdlet 需要 64 位 PowerShell 环境。

解决方法

Import-CMSecurityRole

Cmdlet 可能会失败,但查找文件 SecuredRoles.xsd时出现 DirectoryNotFoundException 错误。

解决方法

  • 针对ConfigurationManager.psd1文件而不是逻辑路径或模块名称调用Import-Module

Set-CMSoftwareUpdatePoint

即使基础 SMS 提供程序对象已更改,Configuration Manager控制台中也可能不会显示对计划所做的更改。

解决方法

  • 退出并重新启动Configuration Manager控制台。

资源跟踪和恢复 (beta)

此版本添加了新的 cmdlet,以支持跟踪 PowerShell 运行时使用的 SMS 提供程序对象,并在不再需要这些资源时清理这些资源。

  • Disconnect-CMTrackedObject
  • Start-CMObjectTracking
  • Stop-CMObjectTracking

运行 Start-CMObjectTracking时,PowerShell 运行时会跟踪 IResultObject Cmdlet 库 cmdlet 创建的对象。 对于未手动清理 .Dispose()的 cmdlet,请对单个对象使用 Disconnect-CMTrackedObject 回收它们。

示例

# Reclaim a single tracked object
$o | Disconnect-CMTrackedObject

# Reclaim all tracked objects
Disconnect-CMTrackedObject -All

回收对象后,无法再通过对象管道重用或传递给另一个 cmdlet。

Stop-CMObjectTracking 可用于关闭对象跟踪。 以前分配的对象保持活动状态。

无人认领资源可能导致 SMS 提供程序引发配额冲突错误。 这些配额问题通常表现在使用大型 SMS 提供程序对象集或长时间运行的环境中。

备注

此功能是实验性的,可能会在将来的版本中进行更改或删除。 它是选择加入的,默认情况下未启用。

Cmdlet 更改

已对此版本中的现有 cmdlet 进行了以下更改。 更改可能是新功能、bug 修复或弃用。 某些更改可能会中断。 如果使用本部分中列出的 cmdlet 或功能区域之一,请仔细查看更改,了解这些更改对你的使用有何影响。

Add-CMDistributionPoint

非中断性更改

  • 为分发点启用 LEDBAT 的新 EnableLedbat 参数

Add-CMIntuneSubscription

已修复的 Bug

  • 无法将 CompanyLogoPathCompanyLogoThemedPath 设置为大于 400x100 和 750 KB 的艺术品

Add-CMManagementPoint

已修复的 Bug

  • 如果 EnableCloudGateway$true,可以将 CommunicationType 设置为不受支持的值 Http

Clear-CMPxeDeployment

已修复的 Bug

  • Cmdlet 未清除 PXE 部署

Get-CMDevice

已修复的 Bug

  • Cmdlet 可能不会返回设备的预期属性

Get-CMHierarchySetting

非中断性更改

  • Cmdlet 现在返回客户端升级和使用情况数据设置

New-CMAntimalwarePolicyDeployment

已修复的 Bug

  • Cmdlet 允许将用户集合指定为部署目标

New-CMComplianceRuleExistential

非中断性更改

  • ExpectedValue 参数现在允许负数

New-CMConfigurationPolicyuDeployment

已修复的 Bug

  • 在所有参数集中均不可用的 PostponeDateTime 参数

New-CMUserDataAndProfileConfigurationItem

已修复的 Bug

  • 无法与 DetectSlowLinkDisabled 参数配合使用$false
  • DetectSlowLink 为 “DetectSlowLink” 时,无法设置某些参数 $true

New-CMWirelessProfile

非中断性更改

  • 现在可以将“Fast”与 EapType 参数配合使用
  • 新的 RememberUserCredentials 参数可用于设置或清除凭据。

弃用

  • RememberCredentials 参数已被 RememberUserCredentials 取代

Set-CMComplianceRuleExistential

非中断性更改

  • ExpectedValue 参数现在允许负数

Set-CMDistributionPoint

非中断性更改

  • 用于为分发点配置 LEDBAT 的新 EnableLedbat 参数

Set-CMHierarchySetting

非中断性更改

  • 用于配置使用情况数据设置的新 TelemetryLevel 参数

Set-CMIntuneSubscription

已修复的 Bug

  • 无法将 CompanyLogoPathCompanyLogoThemedPath 设置为大于 400x100 和 750KB 的艺术品

Set-CMManagementPoint

已修复的 Bug

  • 如果 EnableCloudGateway$true,可以将 CommunicationType 设置为不受支持的值 Http

Set-CMMsiDeploymentType

已修复的 Bug

  • AddDetectionClause 参数清除以前现有的 MSI 产品代码检测子句
  • AddRequirement 参数可能失败并出现“SQL_ERROR”

非中断性更改

  • 用于分组检测子句的新 GroupDetectionClausesDetectionClauseConnector 参数

Set-CMSoftwareUpdatePointComponent

非中断性更改

  • 添加了用于配置功能和非功能取代的新参数
  • 即将过期的新的 ImmediatelyExpireSupersedenceForFeature 参数
  • 新的 WaitForMonthFeature 参数,用于配置取代更新的过期时间

Set-CMTSStepJoinDomainWorkgroup

已修复的 Bug

  • UserName 参数不支持 %VARIABLE% 格式

Set-CMTSStepCaptureUserState

非中断性更改

  • 使用 AddConfigFileModeOption 为 “ModeOption ”时,Cmdlet 现在会发出警告 Standard

Set-CMUserDataAndProfileConfigurationItem

非中断性更改

  • Cmdlet 现在会在 EnableSlowLink 为 EnableSlowLink 时使用 SlowLinkSyncMins 参数时发出警告$false

Set-CMWirelessProfile

非中断性更改

  • 现在可以将“Fast”与 EapType 参数配合使用
  • 新的 RememberUserCredentials 参数可用于设置或清除凭据。

弃用

  • RememberCredentials 参数已被 RememberUserCredentials 取代

Start-CMAntimalwarePolicyDeployment

已修复的 Bug

  • Cmdlet 允许将用户集合指定为部署目标