Current Branch 1706 的 Configuration Manager Cmdlet 库更改
注意
System Center Configuration Current Branch 1702 是这些更改的基线。 有关更多详细信息,请参阅 Current Branch 1702 Configuration Manager Cmdlet 库更改。
重要更改
文档库更新
有关最新的 cmdlet 库文档,请参阅 ConfigurationManager 模块参考。
管理员控制台 集成脚本环境 (ISE) 体验改进
从管理员控制台启动 ISE 时生成的脚本已更新为允许更多自定义和可重用性。
如果之前已生成脚本,则必须从 %APPDATA%\TEMP
中删除该脚本才能创建新脚本。
已删除 cmdlet
以下 cmdlet 不再受支持,已删除:
- Add-CMComplianceRegistrySetting
- New-CMComplianceRule
已知问题
这些是 Cmdlet 库的已知问题,未在此版本中解决。
Get-CMAadConditionalAccessPolicy 和 Set-CMAadConditionalAccessPolicy
这些 cmdlet 需要 64 位 PowerShell 环境。
解决方法
- 无
New-CMWirelessProfile 和 Set-CMWirelessProfile
如果在 64 位 PowerShell 环境中运行,Cmdlet 可能会失败。
解决方法
- 在 32 位 PowerShell 环境中运行这些 cmdlet。
Add-CMDataWarehouseServicePoint 和 Set-CMDataWarehouseServicePoint
无法将计划设置为运行“每日”
解决方法
- 无
Import-CMSecurityRole
Cmdlet 可能会失败,并显示找到文件的 SecuredRoles.xsd
DirectoryNotFoundException 错误。
解决方法
Import-Module
确保针对ConfigurationManager.psd1
文件而不是逻辑路径或模块名称调用 。
New-CMApplicationDeployment 和 New-CMClientSettingDeployment
Cmdlet 允许组合 CollectionName、 Collection 和 CollectionId 参数,从而导致未定义的行为。
解决方法
仅指定 CollectionName、 Collection 或 CollectionId。 不要组合这些参数。
Remove-CMStateMigrationPoint
如果存在由站点角色托管的内容,则删除状态迁移点时,Cmdlet 可能会失败并显示 ArgumentOutOfRangeException。
解决方法
直接从 SMS 提供程序中删除状态迁移点。
$smp = Get-CMStateMigrationPoint ... # Get the state migration point
$smp.Delete() # Directly delete the object.
New cmdlet
这些是此版本新添加的 cmdlet,可添加新功能或增强现有 cmdlet 的功能。
配置项目的符合性设置和规则
添加了新的 cmdlet 以支持为配置项目创建设置和规则。
- Add/Set-CMComplianceSettingActiveDirectory
- Add/Set-CMComplianceSettingAssembly
- Add/Set-CMComplianceSettingDirectory
- Add/Set-CMComplianceSettingFile
- Add/Set-CMComplianceSettingIisMetabase
- Add/Set-CMComplianceSettingRegistryKey
- Add/Set-CMComplianceSettingRegistryKeyValue
- Add/Set-CMComplianceSettingRule
- Add/Set-CMComplianceSettingScript
- Add/Set-CMComplianceSettingSqlQuery
- Add/Set-CMComplianceSettingWqlQuery
- Add/Set-CMComplianceSettingXPathQuery
- Get-CMComplianceRule
- Get-CMComplianceSetting
- New-CMComplianceRuleAssembly
- New-CMComplianceRuleExistential
- New-CMComplianceRuleFileFolderAttribute
- New-CMComplianceRuleFileFolderDate
- New-CMComplianceRuleFileFolderPermission
- New-CMComplianceRuleFileFolderSimple
- New-CMComplianceRuleFileFolderSize
- New-CMComplianceRuleRegistryKeyPermission
- New-CMComplianceRuleValue
- New-CMComplianceRuleVersion
- Remove-CMComplianceRule
- Remove-CMComplianceSetting
示例 1:创建不带规则的注册表项值设置
# Creates a setting looking for HKLM\Software\Microsoft\Windows NT\CurrentVersion:ReleaseId
$ci | Add-CMComplianceSettingRegistryKeyValue -SettingName "ReleaseId no rule" -DataType String -Hive LocalMachine -KeyName "SOFTWARE\Microsoft\Windows NT\CurrentVersion" -ValueName "ReleaseId" -NoRule
示例 2:使用存在规则创建注册表项值设置
# Creates a setting requiring the HKLM\Software\Microsoft\WindowsNT\CurrentVersion:ReleaseId registry key to exist
$ci | Add-CMComplianceSettingRegistryKeyValue -SettingName "ReleaseId must exist" -DataType String -Hive LocalMachine -KeyName "SOFTWARE\Microsoft\Windows NT\CurrentVersion" -ValueName "ReleaseId" -ExistentialRule -Existence MustExist
示例 3:使用值规则创建注册表项值设置
# Creates a setting requiring the HKLM\Software\Microsoft\WindowsNT\CurrentVersion:ReleaseId registry key to be equal to "1703"
$ci | Add-CMComplianceSettingRegistryKeyValue -SettingName "ReleaseId must be 1703" -DataType String -Hive LocalMachine -KeyName "SOFTWARE\Microsoft\Windows NT\CurrentVersion" -ValueName "ReleaseId" -ValueRule -ExpressionOperator IsEqual -ExpectedValue "1703"
示例 4:创建要求文件具有特定属性集的文件规则
$ci | Add-CMComplianceSettingFile -Path "C:\" -FileName "hiberfile.sys" -NoRule -SettingName "hiberfile.sys must have system attribute"
$setting = $ci | Get-CMComplianceSetting -SettingName "hiberfile.sys must have system attribute" # Get the SDK setting object
$rule = $setting | New-CMComplianceRuleFileFolderAttribute -RuleName "hiberfile.sys must be system" -System $true # Create the rule
$ci | Add-CMComplianceSettingRule $rule # Bind the rule to the CI
更新和服务
添加了新的 cmdlet 以支持在 Configuration Manager 中自动执行更新和维护。
- Enable-CMSiteFeature
- Get-CMSiteFeature
- Get-CMSiteUpdate
- Get-CMSiteUpdateHistory
- Get-CMSiteUpdateInstallStatus
- Install-CMSiteUpdate
- Invoke-CMSitePromotePreproductionClient
- Invoke-CMSiteUpdateCheck
- Invoke-CMSiteUpdateDownload
- Invoke-CMSiteUpdatePrerequisiteCheck
示例 1:下载更新并监视其状态
# Get the update object for the 1706 TP and invoke a download
$update = Get-CMSiteUpdate -Name "Configuration Manager Technical Preview 1706" -Fast
$update | Invoke-CMSiteUpdateDownload
``` powershell
# Now monitor the download status
``` powershell
while($true) {
cls
$update | Get-CMSiteUpdateInstallStatus -Step Download | select orderid, progress, description | ft
sleep 5
}
示例 2:安装更新并监视其状态
$update = Get-CMSiteUpdate -Name "Configuration Manager Technical Preview 1706" -Fast
$update | Install-CMSiteUpdate -IgnorePrerequisiteWarning -Force
while($true) {
cls
$update | Get-CMSiteUpdateInstallStatus -Step All -Complete | select orderid, progress, description -Last 10 | ft
sleep 5
}
部署类型的增强检测方法
添加了新的 cmdlet,以支持将增强的检测方法添加到 Windows Installer (MSI) 、脚本和 Mac 部署类型。
- Windows Installer & 脚本检测子句
- New-CMDetectionClauseDirectory
- New-CMDetectionClauseFile
- New-CMDetectionClauseRegistryKey
- New-CMDetectionClauseRegistryKeyValue
- New-CMDetectionClauseWindowsInstaller
- Mac 检测子句
- New-CMDetectionClauseMacBundle
- New-CMDetectionClauseMacPackage
示例:添加一个检测子句,该子句要求为 Windows Installer 部署类型提供特定的产品 ID 和目录名称。
$clause1 = New-CMDetectionClauseWindowsInstaller -ProductCode $guid [Value -ExpressionOperator IsEquals -ExpectedValue "1.1.1.1" # Do a version check
$clause2 = New-CMDetectionClauseDirectory -DirectoryName "mymsi" -Path "C:\" -Existence # c:\mymsi should exist
$app | Add-CMMsiDeploymentType -ContentLocation "\\myserver\mypath\mymsi.msi" -Force -AddDetectionClause ($clause1, $clause2)
注意
目前不支持修改检测子句。
目前不支持对检测子句进行分组或取消分组。
任务序列
添加了新的 cmdlet 以支持修改任务序列步骤和分组。
- 任务序列组和步骤
- Get/New/Remove/Set-CMTaskSequenceGroup
- Add/Get/Remove-CMTaskSequenceStep
- (Get 和 New 谓词支持的任务序列条件)
- CMTaskSequenceStepConditionIfStatement
- CMTaskSequenceStepConditionQueryWmi
- CMTaskSequenceStepConditionRegistry
- CMTaskSequenceStepConditionFile
- CMTaskSequenceStepConditionFolder
- CMTaskSequenceStepConditionOperatingSystem
- CMTaskSequenceStepConditionSoftware
- 任务序列命令 (Get、新建、删除和设置支持的谓词)
- CMTaskSequenceStepRunCommandLine
- CMTaskSequenceStepInstallApplication
- CMTaskSequenceStepInstallSoftware
- CMTaskSequenceStepInstallUpdate
- CMTaskSequenceStepPartitionDisk
- CMTaskSequenceStepReboot
- CMTaskSequenceStepRunPowerShellScript
- CMTaskSequenceStepSetupWindowsAndConfigMgr
- CMTaskSequenceStepSetVariable
- 任务序列支持命令
- New-CMTaskSequencePartitionSetting
示例:创建运行两个 PowerShell 脚本的自定义任务序列
$step1 = New-CMTaskSequenceStepRunPowerShellScript -Name "Run script 1" -PackageID $PackageId -ScriptName "script1.ps1" -ExecutionPolicy Bypass
$step2 = New-CMTaskSequenceStepRunPowerShellScript -Name "Run script 2" -PackageID $PackageId -ScriptName "script2.ps1" -ExecutionPolicy Bypass
$ts = New-CMTaskSequence -Name "Run scripts" -CustomTaskSequence
$ts | Add-CMTaskSequenceStep -Step ($step1, $step2)
注意
要在未来版本中添加的其他任务序列命令。
iOS 批量注册
添加了新的 cmdlet 以支持 iOS 批量注册方案。
- Get-CMCorpOwnedDevice
- Get-CMIosEnrollmentProfile
- New-CMIosEnrollmentProfile
- Remove-CMCorpOwnedDevice
- Remove-CMIosEnrollmentProfile
- Set-CMIosEnrollmentProfileAssignment
无线配置文件
添加了新的 cmdlet 以支持无线配置文件。
- Get-CMWirelessProfile
- New-CMWirelessProfile
- Remove-CMWirelessProfile
- Set-CMWirelessProfile
部署 cmdlet
添加了新的 cmdlet 以支持其他部署方案。
- New-CMClientSettingsDeployment
- 取代
Start-CMClientSettingsDeployment
- 取代
- New-CMApplicationDeploymentSimulation
- 取代
Start-CMApplicationDeploymentSimulation
- 取代
资源跟踪和恢复 (BETA)
添加了新的 cmdlet,以支持跟踪 PowerShell 运行时使用的 SMS 提供程序对象,并在不再需要这些资源时清理这些资源。
- Disconnect-CMTrackedObject
- Start-CMObjectTracking
- Stop-CMObjectTracking
运行 时 Start-CMObjectTracking
,PowerShell 运行时将跟踪 IResultObject
由 Cmdlet 库 cmdlet 创建的对象。 未使用 手动清理 .Dispose()
的 Cmdlet 可以通过对单个对象使用 Disconnect-CMTrackedObject
来回收 (示例: $o | Disconnect-CMTrackedObject
) ,或 Disconnect-CMTrackedObject -All
可用于回收 所有 跟踪对象。
请注意,一旦回收对象,便不能再重复使用该对象,也无法再通过对象管道传递给另一个 cmdlet。
Stop-CMObjectTracking
可用于关闭对象跟踪。 请注意,以前分配的对象将保持活动状态。
未认领的资源可能会导致 SMS 提供程序引发配额冲突错误。 这些问题通常表现在处理非常大的 SMS 提供程序对象集或长时间运行的环境中
注意
这是一项实验性功能,在将来的版本中可能会发生更改或删除。 此功能是选择加入的,默认情况下未启用。
Get-CMClientHealthSummary
此 cmdlet 可用于获取具有可选日期范围的集合的客户端运行状况信息。
示例:从 2017 年 1 月开始获取“所有系统”的客户端运行状况。
Get-CMCollection -Name "All Systems" | Get-CMClientHealthSummary -StartDate "2017/01/01"
Get-CMSoftwareUpdateSyncStatus
此 cmdlet 可用于获取与 Windows 更新 同步的状态。
Invoke-CMContentRedistribution
此 cmdlet 可用于重新分发已部署到分发点的内容。 这支持应用程序、包、启动映像、软件更新、驱动程序、映像、任务序列和操作系统内容分发。
示例:将包重新分发到分发点
Get-CMPackage -Name Contoso | Invoke-CMContentRedistribution -DistributionPointName myserver.contoso.com
Invoke-CMDeploymentSummarization
此 cmdlet 可用于立即执行部署摘要。
Stop-CMMigrationSource
此 cmdlet 可用于阻止站点迁移的发生。
Sync-CMMigrationSource
必须用于恢复迁移。
Cmdlet 更改
已针对此版本的现有 cmdlet 进行了以下更改。 更改可能是新功能、bug 修复或弃用,并且可能会中断。 如果使用本节中列出的某个 cmdlet 或功能区域,请仔细查看更改,以了解它们如何影响你的使用。
Add-CMApplicationCatalogWebsitePoint
已修复的 Bug
如果为 ApplicationWebServicePointServer 指定的值不包含预期的站点角色,Cmdlet 可能会失败并出现 KeyNotFoundException 错误。
非中断性变更
添加了 ApplicationWebServicePointServer ,以允许使用 的 Get-CMApplicatinWebServicePoint
输出定义 Web 服务点。 不能与 ApplicationWebServicePointServerName 组合使用。
Add-CMAssetIntelligenceSynchronizationPoint
已修复的 Bug
如果指定了无效 的 CertificatePath ,则角色的创建可能会不正确。 另请参阅: Remove-CMAssetIntelligenceSynchronizationPoint。
Add-CMDataWarehouseServicePoint
中断性变更
DaysOfWeek 值从整数更改为 DataWarehouseDaysOfWeek
枚举值。
已修复的 Bug
DataWarehouseDatabaseServerName 不会验证 FQDN 主机名是否少于 16 个字符。
非中断性变更
添加了 DataWarehouseInstanceName 参数以支持指定SQL Server实例。
Add-CMMacDeploymentType
非中断性变更
添加了 AddDetectionClause 参数,以支持向部署类型添加检测子句。 有关详细信息 ,请参阅增强的检测方法部分 。
Add-CMMsiDeploymentType
非中断性变更
添加了 AddDetectionClause 参数,以支持向部署类型添加检测子句。 有关详细信息 ,请参阅增强的检测方法部分 。
添加了 RebootBehavior 参数以允许定义重新启动行为。
Add-CMScriptDeploymentType
非中断性变更
添加了 AddDetectionClause 参数,以支持向部署类型添加检测子句。 有关详细信息 ,请参阅增强的检测方法部分 。
添加了 RebootBehavior 参数以允许定义重新启动行为。
Add-CMWindowsPhoneStoreDeploymentType
已修复的 Bug
如果指定了 windowsphone.com URL,则可能会创建无效的部署类型。
Approve-CMApprovalRequest 和 Deny-CMApprovalRequest
非中断性变更
Cmdlet 现在支持使用与请求关联的 GUID 批准或拒绝审批请求。
Get-CMAlert
已修复的 Bug
cmdlet 不会检索与 Endpoint Protection 或客户端运行状况相关的警报类型。
Get-CMApprovalRequest
非中断性变更
添加了 CurrentState 参数,以允许按审批状态筛选审批请求。
Get-CMMaintenanceWindow
已修复的 Bug
如果没有为站点定义维护时段,Cmdlet 可能会失败并显示 NullReferenceException。
Import-CMWirelessProfileConfigurationItem
已修复的 Bug
Path 参数不会验证输入是否为有效的 UNC 路径。
Import-CMClientCertificatePfx
非中断性变更
添加了 ForSmimeEncryption 参数,以指示Microsoft Intune可以使用证书进行设备加密。
Import-CMDriver
已修复的 Bug
Path 参数不会验证输入是否为有效的 UNC 路径。
Import-CMTaskSequence
已修复的 Bug
ImportFilePath 参数不会验证输入是否为有效的 UNC 路径。
Lock-CMObject
已修复的 Bug
如果对不支持锁定的对象调用,Cmdlet 可能会失败并显示 NullReferenceException。
New-CMADGroupDiscoveryScope
已修复的 Bug
GroupDN 参数不会验证输入是否为有效的可分辨名称。
New-CMAlertSubscription
已修复的 Bug
如果为 EmailAddress 指定了多个值,则订阅配置不正确。
New-CMApplicationDeployment
非中断性变更
添加了 EnableSoftDeadline 参数以配置延迟强制。
New-CMCertificateProfileScep
非中断性变更
KeySize 参数现在允许字节值 4096
。
New-CMTaskSequence
非中断性变更
添加了 TimeZone 参数,允许在使用 InstallOperatingSystemImage 时指定时区信息。 可以使用 cmdlet 指定 Get-TimeZone
时区。
New-CMSoftwareUpdateAutoDeploymentRule
已修复的 Bug
如果指定了 Language ,则可能会创建无效的自动部署规则。
如果 “位置” 不存在,可能会创建无效的自动部署规则。
Remove-CMAssetIntelligenceSynchronizationPoint
已修复的 Bug
如果删除配置不正确的资产智能同步点角色,Cmdlet 可能会失败并显示 ArgumentNullException。
Remove-CMMaintenanceWindow
已修复的 Bug
WhatIf 或 Confirm 可能会导致 cmdlet 返回 ItemNotFoundException 错误。
Remove-CMUpdateGroupDeployment
已修复的 Bug
Cmdlet 可能无法删除有效部署并显示 ItemNotFoundException 错误。
Remove-CMUserCollectionDirectMembershipRule
非中断性变更
ResourceName 参数现在支持通配符值。
Set-CMAlertSubscription
弃用
EmailAddress 参数已被 AddEmailAddress 和 RemoveEmailAddress 取代
非中断性变更
添加了 AddEmailAddress 参数,以允许就地修改电子邮件地址。 不能与 EmailAddress 组合使用。
添加了 RemoveEmailAddress 参数,以允许就地删除电子邮件地址。 不能与 EmailAddress 组合使用。
Set-CMApplicationDeployment
非中断性变更
添加了 EnableSoftDeadline 参数以配置延迟强制。
Set-CMConfigurationPolicyDeployment
已修复的 Bug
Cmdlet 可能无法部署远程连接配置文件。
非中断性变更
添加了 RemoteConnectionProfileName 和 RemoteConnectionProfileId 参数,以允许按名称或 ID 部署远程连接配置文件。
Set-CMDataWarehouseServicePoint
中断性变更
DaysOfWeek 值从整数更改为 DataWarehouseDaysOfWeek
枚举值。
已修复的 Bug
运行 cmdlet 时,未使用的参数可能会导致值重置为默认值。
DataWarehouseDatabaseServerName 不会验证 FQDN 主机名是否少于 16 个字符。
非中断性变更
添加了 DataWarehouseInstanceName 参数以支持指定SQL Server实例。
Set-CMEmailNotificationComponent
已修复的 Bug
如果在未指定端口值的情况下指定 UseSsl,则可能未正确配置 SMTP 端口。
Set-CMHierarchySetting
已修复的 Bug
Cmdlet 允许将排除集合设置为内置集合 (,例如“所有系统) ”。
非中断性变更
添加了 EnablePrereleaseFeature 参数以支持启用预发行版功能。 这是一次性更改,除非使用 Force ,否则将提示确认。 有关更多详细信息 ,请参阅更新 & 服务 。
Set-CMMacDeploymentType
非中断性变更
添加了 AddDetectionClause 参数,以支持向部署类型添加检测子句。 有关详细信息 ,请参阅增强的检测方法部分 。
添加了 RemoveDetectionClause 参数,以支持从部署类型中删除检测子句。 有关详细信息 ,请参阅增强的检测方法部分 。
Set-CMMsiDeploymentType
非中断性变更
添加了 AddDetectionClause 参数,以支持向部署类型添加检测子句。 有关详细信息 ,请参阅增强的检测方法部分 。
添加了 RemoveDetectionClause 参数,以支持从部署类型中删除检测子句。 有关详细信息 ,请参阅增强的检测方法部分 。
添加了 RebootBehavior 参数以允许定义重新启动行为。
Set-CMProgram
已修复的 Bug
ProgramRunType 更改可能不会应用于指定的程序。
Set-CMScriptDeploymentType
非中断性变更
添加了 AddDetectionClause 参数,以支持向部署类型添加检测子句。 有关详细信息 ,请参阅增强的检测方法部分 。
添加了 RemoveDetectionClause 参数,以支持从部署类型中删除检测子句。 有关详细信息 ,请参阅增强的检测方法部分 。
添加了 RebootBehavior 参数以允许定义重新启动行为。
Set-CMSiteMaintenanceTask
已修复的 Bug
无法为与站点备份相关的任务启用警报。
Set-CMSoftwareInventory
中断性变更
Tag1Id、 Tag2Id 和 Tag3Id 参数现在执行验证以确保使用正确的格式。
非中断性变更
添加了 PassThru 参数支持。
已修复的 Bug
指定无效 的 Tag2Id 值可能会导致删除最初指定的标记。
Set-CMSoftwareUpdateAutoDeploymentRule
已修复的 Bug
如果 “位置” 不存在,可能会创建无效的自动部署规则。
Set-CMSoftwareUpdatePointComponent
非中断性变更
添加了 ContentFileOption 参数以配置Windows 10更新行为。
Set-CMWindowsPhoneStoreDeploymentType
已修复的 Bug
如果指定了 windowsphone.com URL,则可能会创建无效的部署类型。