导入Configuration Manager控制台扩展

适用于: Configuration Manager(current branch)

从 Configuration Manager 2103 开始,可以导入要在环境中使用的控制台扩展。 这些扩展显示在 控制台扩展 节点下。 在控制台中导入和仅使用扩展不会使它们立即可用。 管理员仍必须批准网站的扩展并启用通知。 然后,控制台用户可以将扩展安装到其本地控制台。 有关管理和安装控制台扩展的详细信息,请参阅管理Configuration Manager控制台扩展

根据运行的Configuration Manager的版本,可以使用不同的导入选项。 最初,只能通过管理服务导入已签名的扩展。 稍后添加了对导入未签名扩展的支持。 然后,版本 2111 中引入了一个向导,该向导可以导入已签名扩展和未签名扩展而无需运行脚本。

Configuration Manager 版本 2103 2107 2111 或更高版本
导入已签名扩展
导入未签名的扩展 是, 如果允许未签名 是, 如果允许未签名
使用 PowerShell 脚本从 管理服务 导入 是,仅限已签名的扩展
从导入控制台扩展向导导入

如何导入控制台扩展

若要导入控制台扩展,需要执行四个基本步骤。 导入的确切方式取决于所使用的Configuration Manager版本以及扩展是否已签名。 若要导入和安装层次结构批准的控制台扩展,高级步骤如下:

  1. 确定是否需要 允许未签名 层次结构批准的控制台扩展 (版本 2107 及更高版本) 。
  2. 使用以下方法之一导入控制台扩展:
  3. 在本地控制台中测试扩展
  4. 启用通知 以允许控制台用户安装控制台扩展。

允许层次结构的未签名控制台扩展

(适用于Configuration Manager版本 2107 或更高版本)

从 Configuration Manager 版本 2107 开始,可以选择允许未签名的层次结构批准的控制台扩展。 最佳做法是始终使用已签名的扩展,以最大程度地降低安全风险并确认主机扩展的真实性。 但是,在某些情况下,你可能需要允许未签名的控制台扩展,因为内部开发的扩展未签名,或者在实验室中测试你自己的自定义扩展。 若要允许 导入 和安装未经签名的层次结构批准的控制台扩展,请启用层次结构设置。

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

注意

目前,如果未 为用户通知启用未签名的扩展,在 “控制台扩展” 节点中, “必需” 列将保持空白,而不是填充值 “否”。

使用脚本导入已签名的控制台扩展

(适用于Configuration Manager版本 2103 或更高版本)

如果已将扩展打包到已签名.cab文件中,则可以将其导入Configuration Manager。 为此,你将使用 PowerShell 脚本通过 管理服务 发布它。 将扩展插入站点后,可以从 “控制台扩展” 节点批准并在本地安装它。 若要导入,请在编辑 $adminServiceProvider$cabFilePath后运行以下 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
               }
           } | 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."}

使用脚本导入未签名的控制台扩展

(适用于Configuration Manager版本 2107 或更高版本)

从 Configuration Manager 版本 2107 开始,可以选择允许未签名的层次结构批准的控制台扩展。 最佳做法是始终使用已签名的扩展,以最大程度地降低安全风险并确认主机扩展的真实性。 但是,在某些情况下,你可能需要允许未签名的控制台扩展,因为内部开发的扩展未签名,或者在实验室中测试你自己的自定义扩展。

拥有.cab扩展名的文件后,可以在Configuration Manager实验室环境中对其进行测试。 为此,你将通过 管理服务发布它。 将扩展插入站点后,可以批准它,并从 控制台扩展 节点本地安装它。 若要导入,请在编辑 $adminServiceProvider$cabFilePath后运行以下 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."}

注意

目前,如果未 为用户通知启用未签名的扩展,在 “控制台扩展” 节点中, “必需” 列将保持空白,而不是填充值 “否”。

导入控制台扩展向导

(适用于Configuration Manager版本 2111 或更高版本)

从版本 2111 开始,可以使用 导入控制台扩展 向导导入为层次结构管理的 控制台扩展 。 不再需要使用 PowerShell 脚本来导入已签名或未签名的控制台扩展。 若要使用向导导入控制台扩展,请执行以下操作:

  1. “管理”工作区中,展开“汇报”和“服务”,然后选择“控制台扩展”节点。
  2. 从功能区或右键单击菜单中选择 “导入控制台扩展 ”。
  3. 向导启动时,选择“ 浏览 ”并导航到扩展的 cab 文件。
  4. 如果需要,请选择“ 允许取消签名扩展”选项。
  5. 选择“ 下一步 ”查看导入摘要,然后完成向导以导入扩展。

注意

若要导入未签名的扩展,需要在“层次结构设置”中启用“层次结构批准的控制台扩展可以未签名”选项。 有关详细信息,请参阅 允许未经签名的层次结构批准的控制台扩展

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

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

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

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

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

为扩展安装启用用户通知

  1. 如果需要,请修改扩展的安全范围,以允许更多管理员进行访问。 这些管理员将通过安装扩展的控制台内通知成为目标。
  2. 选择 “启用通知”。
  3. 启动未安装扩展的Configuration Manager控制台。 理想情况下,请使用在修改安全作用域时授予访问权限的测试帐户。
  4. 验证是否发生了扩展通知,以及是否可以安装扩展。

后续步骤