Configuration Manager技术预览版 2105.2 中的功能

适用于:Configuration Manager (技术预览分支)

本文介绍 Configuration Manager 版本 2105 的技术预览版中提供的功能。 安装此版本以更新技术预览网站并添加新功能。

在安装此更新之前,请查看 技术预览 文章。 本文使你熟悉使用技术预览版的一般要求和限制、如何在版本之间更新以及如何提供反馈。

以下部分介绍在此版本中试用的新功能:

Windows 更新软件更新的本机体验

从 Configuration Manager 安装软件更新时,现在可以选择使用本机Windows 更新界面和重启体验。 客户端的“Windows 更新设置”页显示更新,就像在使用Windows 更新进行扫描时一样。 从软件更新重启也会像使用Windows 更新一样运行。 若要使用此功能,客户端设备必须运行 Windows 预览体验成员内部版本 21277 或更高版本。 若要启用Windows 更新本机体验,

  1. “管理”工作区中,选择“Configuration Manager中的”客户端设置”。

  2. “客户端设置”中选择“计算机重启”组

  3. 对于 “选择要向最终用户显示的重启体验 ”设置,请选择 “Windows ”选项。

  4. 如果需要,可以使用以下设置更改在强制设备重启之前允许设备等待重启的天数:

    指定截止时间,即从设备等待重新启动到强制重启设备为止) 天 (的时间。

    • 最小值:1 天
    • 最大值:30 天
    • 默认值:2 天

    使用软件更新的本机体验Windows 更新设备的屏幕截图

从错误窗口发送产品反馈

以前,如果Configuration Manager控制台在单独的窗口中报告了错误,则必须返回到main控制台窗口以发送反馈。 在某些情况下,打开其他控制台窗口时无法执行此操作。

从此版本开始,错误消息包括 向 Microsoft 报告错误的链接。 此操作将打开标准“发送皱眉”窗口以提供反馈。 它自动包含有关用户界面和错误的详细信息,以更好地帮助 Microsoft 工程师诊断错误。 除了更容易发送皱眉,它还允许你在共享屏幕截图时包含错误消息的完整上下文。

在 Configuration Manager 控制台中向 Microsoft 操作报告错误

尝试一下!

尝试完成任务。 然后发送 反馈 ,其中包含你对该功能的看法。

使用以下步骤轻松演示错误,然后启动该过程以提供反馈:

  1. 在Configuration Manager控制台中,打开任何自定义集合的属性。

  2. 在“ 成员身份规则 ”选项卡上的“ 添加规则” 列表中,选择“ 查询规则”。

  3. 在“查询规则属性窗口,选择”编辑查询语句”。

  4. 在集合的 Query 语句属性窗口,选择“显示查询语言”。

  5. 将默认查询语句更改为 Select * from not-a-class

  6. 选择绿色三角形以打开“查询结果预览”窗口,然后选择“ 运行”。

  7. 你将看到一条错误消息。 选择“ 向 Microsoft 报告错误 ”以打开“提供反馈”向导。 有关此向导的详细信息,请参阅 发送皱眉头

自定义设备属性

许多客户具有外部的其他数据Configuration Manager但对部署目标、集合构建和报告很有用。 这些数据在本质上通常是非技术性的,无法在客户端上发现,并且来自单个外部源。 例如,中心 IT 基础结构库 (ITIL) 系统或资产数据库,该数据库具有以下一些设备属性:

  • 物理位置
  • 组织优先级
  • 类别
  • 成本中心
  • 部门

从此版本开始,可以使用 管理服务 在设备上设置此数据。 然后,可以使用 Configuration Manager 中的自定义属性进行报告或创建集合。

此功能基于以下反馈:

  • 基于计算机变量查询创建集合

  • 使用自定义属性 (变量) 添加新的“设备”选项卡

自定义属性的先决条件

进行 API 调用的帐户需要对包含目标设备的集合具有以下权限:

  • 设置属性: 修改资源
  • 查看属性: 读取资源
  • 删除属性: 删除资源

尝试一下!

尝试完成任务。 然后发送 反馈 ,其中包含你对该功能的看法。

创建自定义属性

若要创建自定义属性, 请使用管理服务。 站点将属性的名称及其值作为新的 设备扩展数据 类存储在站点数据库中。

以下管理服务 API 示例演示如何设置、查看和删除自定义属性。 这些示例使用 PowerShell 进行 API 调用,但可以使用其他方法。 若要在环境中使用这些示例,请更改 SMS 提供程序 (提供程序) 的变量值和资源 ID (resourceID) 。

警告

这些示例脚本启用 ServicePointManager.ServerCertificateValidationCallback 属性。 此配置允许 任何 证书通过 HTTPS 验证。 使用此命令只是为了便于在实验室环境中进行测试。 请勿在生产环境中使用它。 有关如何启用安全 HTTPS 通信的详细信息,请参阅 如何设置管理服务

在设备上设置自定义属性

若要在设备上设置属性,请使用 SetExtensionData API。 使用 JSON 正文对 URI https://<SMSProviderFQDN>/AdminService/v1.0/Device(<DeviceResourceID>)/AdminService.SetExtensionData 进行 POST 调用。 本示例为设备的资产标记和位置设置两个名称/值对。

$provider = "cm01.contoso.com"
$resourceID = "16777345"
$uri = "https://$provider/AdminService/v1.0/Device($resourceID)/AdminService.SetExtensionData"
$body = "{ExtensionData:{""AssetTag"":""0580255"",""Location"":""Inis Oirr""}}"
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true};
Invoke-RestMethod -Method "Post" -Uri $uri -UseDefaultCredentials -Body $body -ContentType "application/json"
在单个设备上查看自定义属性

若要查看单个设备上的属性,请使用特定设备的 GetExtensionData API。 对 URI https://<SMSProviderFQDN>/AdminService/v1.0/Device(<DeviceResourceID>)/AdminService.GetExtensionData进行 GET 调用。

$provider = "cm01.contoso.com"
$resourceID = "16777345"
$uri = "https://$provider/AdminService/v1.0/Device($resourceID)/AdminService.GetExtensionData"
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true};
Invoke-RestMethod -Method "Get" -Uri $uri -UseDefaultCredentials
查看所有设备上的自定义属性

若要查看所有设备上的属性,请使用不带设备 ID 的 GetExtensionData API。 对 URI https://<SMSProviderFQDN>/AdminService/v1.0/Device/AdminService.GetExtensionData进行 GET 调用。 此调用从你具有读取权限的设备返回属性值。

$provider = "cm01.contoso.com"
$uri = "https://$provider/AdminService/v1.0/Device/AdminService.GetExtensionData"
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true};
Invoke-RestMethod -Method "Get" -Uri $uri -UseDefaultCredentials
删除自定义属性

若要从所有设备中删除属性值,请使用不带设备 ID 的 DeleteExtensionData API。 包括设备资源 ID,以便仅从特定设备中删除属性。 对 URI https://<SMSProviderFQDN>/AdminService/v1.0/Device/AdminService.DeleteExtensionData进行 POST 调用。

$provider = "cm01.contoso.com"
$uri = "https://$provider/AdminService/v1.0/Device/AdminService.DeleteExtensionData"
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true};
Invoke-RestMethod -Method "Post" -Uri $uri -UseDefaultCredentials

创建集合

使用以下步骤创建具有基于自定义属性的查询规则的集合:

  1. 在Configuration Manager控制台中,创建集合

  2. 在“成员身份规则”页上的“ 添加规则” 列表中,选择“ 查询规则”。

  3. 在“查询规则”属性窗口中,指定查询的名称。 然后选择“ 编辑查询语句”。

  4. 在“查询语句属性窗口,切换到”条件“选项卡。然后选择黄金星号 () * 以添加新条件。

  5. 在“条件属性窗口,选择以下值:

    • 属性类: 设备扩展数据
    • 属性: PropertyName
  6. 选择 “运算符” ,然后将属性的名称指定为 “值”。

    此时,“条件”属性窗口应如下图所示:

    设备扩展插件数据属性名称的条件属性窗口

    选择“ 确定” 以保存条件。

  7. 重复这些步骤,为 PropertyValue 属性添加条件。

    此时,集合 Query Statement 属性窗口 应类似于下图:

    具有两个设备扩展插件数据条件的查询语句属性窗口

  8. 选择“ 确定” 以关闭所有属性窗口。 然后完成向导以创建集合。

还可以使用以下示例查询。 在查询语句属性窗口中,选择“ 显示查询语言 ”以粘贴查询语句。

select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client 
from SMS_R_System inner join SMS_G_System_ExtensionData on SMS_G_System_ExtensionData.ResourceId = SMS_R_System.ResourceId 
where SMS_G_System_ExtensionData.PropertyName = "AssetTag" and SMS_G_System_ExtensionData.PropertyValue = "0580255"

客户端日志设置的硬件清单

现在可以清点客户端日志文件设置,例如日志级别和大小。 此行为允许跟踪 客户端诊断 操作更改的设置。 默认情况下不启用此新清单类。

有关客户端日志文件设置的详细信息,请参阅 关于日志文件

尝试一下!

尝试完成任务。 然后发送 反馈 ,其中包含你对该功能的看法。

  1. 在Configuration Manager控制台中,编辑默认或任何自定义客户端设置。 有关详细信息,请参阅 启用或禁用现有硬件清单类

  2. 启用新的清单类 客户端诊断 (CCM_ClientDiagnostics) 。 此类包括以下属性:

    • 已启用调试日志记录
    • 已启用日志记录
    • 日志级别
    • 历史记录文件计数
    • 最大日志文件大小
  3. 对于设备, 请下载计算机策略 ,然后使用客户端通知操作 收集硬件清单

  4. 客户端完成清单周期后,使用 资源浏览器查看硬件清单

简化的 CMPivot 权限要求

我们简化了 CMPivot 权限要求。 新权限适用于 CMPivot 独立版和本地控制台中的 CMPivot。 已进行以下更改:

  • CMPivot 不再需要 SMS 脚本 读取权限
    • 如果管理服务由于 503 (服务不可用) 错误而回退,SMS 提供程序仍需要此权限,如 CMPivot.log 中所示。
  • 不需要 默认范围 权限。

按版本Configuration Manager CMPivot 权限

1902 及更早版本 1906 2105.2 技术预览版及更高版本
短信脚本读取权限 短信脚本读取权限 不适用
集合运行脚本权限 集合运行 CMPivot 权限 集合运行 CMPivot 权限
对清单报表读取权限 对清单报表读取权限 对清单报表读取权限
默认范围 权限 默认范围 权限 不适用

层次结构批准的控制台扩展不需要签名

从此技术预览版开始,可以选择允许未签名 的层次结构批准的控制台扩展。 由于内部开发的扩展未签名,或者为了在实验室中测试你自己的自定义扩展,你可能需要允许未签名的控制台扩展。

若要允许未签名的层次结构批准的控制台扩展,请执行以下操作:

  1. 在Configuration Manager控制台中,转到“管理”工作区,展开“站点配置”,然后选择“站点”。
  2. 从功能区中选择 “层次结构设置 ”。
  3. 在“ 常规 ”选项卡上,启用 “层次结构批准的控制台扩展可以取消签名 ”选项。
  4. 完成后,选择 “确定” 以关闭 “层次结构设置属性”。

导入控制台扩展进行层次结构审批

拥有.cab扩展名的文件后,可以在Configuration Manager实验室环境中对其进行测试。 为此,你将通过 管理服务发布它。 将扩展插入站点后,可以批准它,并从 控制台扩展 节点本地安装它。

编辑 和 $cabFilePath后运行$adminServiceProvider以下 PowerShell 脚本:

  • $adminServiceProvider - 安装了管理服务的顶级 SMSProvider 服务器
  • $cabFilePath - 扩展 .cab 文件的路径
$adminServiceProvider = "SMSProviderServer.contoso.com"
$cabFilePath = "C:\Testing\MyExtension.cab"
$adminServiceURL = "https://$adminServiceProvider/AdminService/v1/ConsoleExtensionMetadata/AdminService.UploadExtension"
$cabFileName = (Get-Item -Path $cabFilePath).Name
$Data = Get-Content $cabFilePath
$Bytes = [System.IO.File]::ReadAllBytes($cabFilePath)
$base64Content = [Convert]::ToBase64String($Bytes)

$Headers = @{
    "Content-Type" = "Application/json"
}

$Body = @{
            CabFile = @{
                FileName = $cabFileName
                FileContent = $base64Content
            }
            AllowUnsigned = $true
        } | ConvertTo-Json

$result = Invoke-WebRequest -Method Post -Uri $adminServiceURL -Body $Body -Headers $Headers -UseDefaultCredentials

if ($result.StatusCode -eq 200) {Write-Host "$cabFileName was published successfully."}
else {Write-Host "$cabFileName publish failed. Review AdminService.log for more information."}

在本地主机上安装和测试扩展

  1. 更改扩展 的安全范围 。 建议对扩展进行初始测试,更改安全范围。

    1. 转到“管理>概述>汇报和服务”下的“控制台扩展”节点。
    2. 选择扩展,然后从功能区中选择“ 设置安全作用域 ”。
    3. 删除 默认 安全范围,并添加仅包含一个或两个管理员进行初始测试的范围。
    4. 选择 “确定” 以保存扩展的安全范围。
  2. 通过从功能区或右键单击菜单中选择“ 批准安装” 来批准扩展。

    • 如果扩展未获批准,则无法安装该扩展或为其启用控制台内通知。
    • 如果此时重启主机,将不会显示有关可用扩展的通知,因为你尚未启用 选项。
  3. 通过选择“安装”在本地主机上 安装扩展。

  4. 安装扩展后,请验证它是否显示,是否可以从本地控制台使用它。

  5. 如果需要,请编辑安全范围和 “启用通知” ,以使用用于安装扩展的控制台内通知面向其他管理员。

对 CMPivot 的改进

CMPivot 具有以下改进:

  • 注册表实体添加了 Key 值
  • 添加了一个新的 RegistryKey 实体,该实体返回与给定表达式匹配的所有注册表项
  • 添加了可与 summarize 运算符一起使用的 maxifminif 聚合器
  • 对查询编辑器中的查询自动完成建议的改进

PowerShell 发行说明预览版

这些发行说明汇总了技术预览版 2105 中Configuration Manager PowerShell cmdlet 的更改。

有关 powerShell for Configuration Manager 的详细信息,请参阅 Configuration Manager cmdlet 入门

New cmdlet

管理应用程序部署类型的安装行为

这组用于应用程序部署类型安装行为的新 cmdlet 基于你的反馈。

有关安装行为功能的更多常规信息,请参阅 检查正在运行的可执行文件

Add-CMDeploymentTypeInstallBehavior

使用此 cmdlet 将需要关闭才能成功安装应用的可执行文件添加到指定的部署类型。

$msi_dt = Get-CMDeploymentType -ApplicationName "CenterApp" -DeploymentTypeName "InterDept - Windows Installer (.msi file)"
Add-CMDeploymentTypeInstallBehavior -InputObject $msi_dt -ExeFileName "notepad.exe" -DisplayName "Notepad"
Get-CMDeploymentTypeInstallBehavior

使用此 cmdlet 从指定的部署类型获取需要关闭才能成功安装应用的可执行文件列表。

$msi_dt = Get-CMDeploymentType -ApplicationName "CenterApp" -DeploymentTypeName "InterDept - Windows Installer (.msi file)"
Get-CMDeploymentTypeInstallBehavior -InputObject $msi_dt
Remove-CMDeploymentTypeInstallBehavior

使用此 cmdlet 从指定的部署类型中删除需要关闭才能成功安装应用的可执行文件。

$msi_dt = Get-CMDeploymentType -ApplicationName "CenterApp" -DeploymentTypeName "InterDept - Windows Installer (.msi file)"
Remove-CMDeploymentTypeInstallBehavior -InputObject $msi_dt -ExeFileName "notepad.exe"
Set-CMDeploymentTypeInstallBehavior

使用此 cmdlet 修改需要关闭才能成功安装应用的可执行文件。

$msi_dt = Get-CMDeploymentType -ApplicationName "CenterApp" -DeploymentTypeName "InterDept - Windows Installer (.msi file)"
Set-CMDeploymentTypeInstallBehavior -InputObject $msi_dt -ExeFileName "notepad.exe" -NewExeFileName "calc.exe" -DisplayName "Calculator"

管理应用程序部署类型的返回代码

这组用于应用程序部署类型返回代码的新 cmdlet 基于你的反馈。

有关更多常规信息,请参阅 部署类型返回代码

Add-CMDeploymentTypeReturnCode

使用此 cmdlet 将返回代码添加到支持的部署类型。

$msi_dt = Get-CMDeploymentType -ApplicationName "CenterApp" -DeploymentTypeName "InterDept - Windows Installer (.msi file)"
Add-CMDeploymentTypeReturnCode -InputObject $msi_dt -ReturnCode 1602 -Name "User cancel" -CodeType Failure -Description "The user cancelled the installation"
Get-CMDeploymentTypeReturnCode

使用此 cmdlet 可从指定的部署类型获取返回代码列表。

Get-CMDeploymentType -ApplicationName "CenterApp" -DeploymentTypeName "InterDept - Windows Installer (.msi file)" | Get-CMDeploymentTypeReturnCode
Remove-CMDeploymentTypeReturnCode

使用此 cmdlet 从指定的部署类型中删除返回代码。

$msi_dt = Get-CMDeploymentType -ApplicationName "CenterApp" -DeploymentTypeName "InterDept - Windows Installer (.msi file)"
Remove-CMDeploymentTypeReturnCode -InputObject $msi_dt -ReturnCode 1602
Set-CMDeploymentTypeReturnCode

使用此 cmdlet 修改指定部署类型的返回代码。

$msi_dt = Get-CMDeploymentType -ApplicationName "CenterApp" -DeploymentTypeName "InterDept - Windows Installer (.msi file)"
Add-CMDeploymentTypeReturnCode -InputObject $msi_dt -ReturnCode 3010 -Name "Always reboot" -CodeType HardReboot -Description "Change soft reboot to hard reboot"

其他新 cmdlet

Get-CMClientSettingDeployment

使用此 cmdlet 获取自定义客户端设置对象的部署。 可以将此对象与 Remove-CMClientSetting 一起使用。

有关客户端设置的详细信息,请参阅 如何配置客户端设置

$clientSetting =  Get-CMClientSetting -Name "Software Center customizations"
$clientSetting | Get-CMClientSettingDeployment
Get-CMClientSettingDeployment -Name "Software Center customizations"
Get-CMDeploymentTypeDetectionClause

根据你的反馈,使用此 cmdlet 从指定的部署类型获取检测子句。

可以使用此 cmdlet 从一个应用获取检测子句并将其应用于另一个应用,例如:

$appMsi = Get-CMDeploymentType -ApplicationName "CenterApp" -DeploymentTypeName "InterDept - Windows Installer (.msi file)"

$clause1 = Get-CMDeploymentTypeDetectionClause -InputObject $appMsi

Set-CMScriptDeploymentType -ApplicationName "Configuration Manager console" -DeploymentTypeName "Install" -AddDetectionClause $clause1

已弃用的 cmdlet

以下用于启动部署的 cmdlet 已弃用,可能会在将来的版本中删除:

已弃用的 cmdlet 替换
Start-CMApplicationDeploymentSimulation New-CMApplicationDeploymentSimulation 参数
Start-CMClientSettingDeployment New-CMClientSettingDeployment
Start-CMAntimalwarePolicyDeployment New-CMAntimalwarePolicyDeployment

修改的 cmdlet

New-CMTaskSequence

有关详细信息,请参阅 New-CMTaskSequence

非中断性变更

  • 删除了旧 版 InstallationLicensingMode 参数。

  • Description 参数的最大长度扩展为 512 字符。

New-CMTSStepApplyOperatingSystem

有关详细信息,请参阅 New-CMTSStepApplyOperatingSystem

已修复的 Bug

修复了 DestinationVariable 参数的验证问题,以允许以下划线开头的值 (_) 。

一般已知问题

租户附加加入的已知问题

升级到技术预览版分支版本 2105.2 后,如果尝试启用租户附加,Configuration Manager立即从租户附加中卸载站点。

此问题不会影响已启用租户附加的站点。

若要解决此问题,请在承载服务连接点角色的站点系统上设置以下注册表项:

Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\SMS\COMPONENTS\SMS_SERVICE_CONNECTOR" -Name "HeartbeatWorker_IntervalSec" -Value 60

配置此注册表项后,启用租户附加。

后续步骤

有关安装或更新技术预览分支的详细信息,请参阅 技术预览版。

有关Configuration Manager的不同分支的详细信息,请参阅我应使用Configuration Manager的哪个分支?