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 为 GroupDetectionClauses 和 DetectionClauseConnector 添加了参数。
示例
使用规则创建简单表达式
$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
- 无法将 CompanyLogoPath 或 CompanyLogoThemedPath 设置为大于 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
- 无法将 CompanyLogoPath 或 CompanyLogoThemedPath 设置为大于 400x100 和 750KB 的艺术品
Set-CMManagementPoint
已修复的 Bug
- 如果 EnableCloudGateway 为
$true
,可以将 CommunicationType 设置为不受支持的值Http
Set-CMMsiDeploymentType
已修复的 Bug
- AddDetectionClause 参数清除以前现有的 MSI 产品代码检测子句
- AddRequirement 参数可能失败并出现“SQL_ERROR”
非中断性更改
- 用于分组检测子句的新 GroupDetectionClauses 和 DetectionClauseConnector 参数
Set-CMSoftwareUpdatePointComponent
非中断性更改
- 添加了用于配置功能和非功能取代的新参数
- 即将过期的新的 ImmediatelyExpireSupersedenceForFeature 参数
- 新的 WaitForMonthFeature 参数,用于配置取代更新的过期时间
Set-CMTSStepJoinDomainWorkgroup
已修复的 Bug
- UserName 参数不支持
%VARIABLE%
格式
Set-CMTSStepCaptureUserState
非中断性更改
- 使用 AddConfigFile 且 ModeOption 为 “ModeOption ”时,Cmdlet 现在会发出警告
Standard
Set-CMUserDataAndProfileConfigurationItem
非中断性更改
- Cmdlet 现在会在 EnableSlowLink 为 EnableSlowLink 时使用 SlowLink 和 SyncMins 参数时发出警告
$false
Set-CMWirelessProfile
非中断性更改
- 现在可以将“Fast”与 EapType 参数配合使用
- 新的 RememberUserCredentials 参数可用于设置或清除凭据。
弃用
- RememberCredentials 参数已被 RememberUserCredentials 取代
Start-CMAntimalwarePolicyDeployment
已修复的 Bug
- Cmdlet 允许将用户集合指定为部署目标