导入Configuration Manager控制台扩展
适用于: Configuration Manager(current branch)
从 Configuration Manager 2103 开始,可以导入要在环境中使用的控制台扩展。 这些扩展显示在 控制台扩展 节点下。 在控制台中导入和仅使用扩展不会使它们立即可用。 管理员仍必须批准网站的扩展并启用通知。 然后,控制台用户可以将扩展安装到其本地控制台。 有关管理和安装控制台扩展的详细信息,请参阅管理Configuration Manager控制台扩展。
根据运行的Configuration Manager的版本,可以使用不同的导入选项。 最初,只能通过管理服务导入已签名的扩展。 稍后添加了对导入未签名扩展的支持。 然后,版本 2111 中引入了一个向导,该向导可以导入已签名扩展和未签名扩展而无需运行脚本。
Configuration Manager 版本 | 2103 | 2107 | 2111 或更高版本 |
---|---|---|---|
导入已签名扩展 | 是 | 是 | 是 |
导入未签名的扩展 | 否 | 是, 如果允许未签名 | 是, 如果允许未签名 |
使用 PowerShell 脚本从 管理服务 导入 | 是,仅限已签名的扩展 | 是 | 是 |
从导入控制台扩展向导导入 | 否 | 否 | 是 |
如何导入控制台扩展
若要导入控制台扩展,需要执行四个基本步骤。 导入的确切方式取决于所使用的Configuration Manager版本以及扩展是否已签名。 若要导入和安装层次结构批准的控制台扩展,高级步骤如下:
- 确定是否需要 允许未签名 层次结构批准的控制台扩展 (版本 2107 及更高版本) 。
- 使用以下方法之一导入控制台扩展:
- 使用脚本 (2103 及更高版本导入已签名的控制台扩展)
- 使用 2107 及更高版本 (2107 及更高版本的脚本导入未签名的控制台扩展)
- 使用 导入控制台扩展 向导 (版本 2111 及更高版本)
- 在本地控制台中测试扩展。
- 启用通知 以允许控制台用户安装控制台扩展。
允许层次结构的未签名控制台扩展
(适用于Configuration Manager版本 2107 或更高版本)
从 Configuration Manager 版本 2107 开始,可以选择允许未签名的层次结构批准的控制台扩展。 最佳做法是始终使用已签名的扩展,以最大程度地降低安全风险并确认主机扩展的真实性。 但是,在某些情况下,你可能需要允许未签名的控制台扩展,因为内部开发的扩展未签名,或者在实验室中测试你自己的自定义扩展。 若要允许 导入 和安装未经签名的层次结构批准的控制台扩展,请启用层次结构设置。
- 在Configuration Manager控制台中,转到“管理”工作区,展开“站点配置”,然后选择“站点”。
- 从功能区中选择 “层次结构设置 ”。
- 在“ 常规 ”选项卡上,启用 “层次结构批准的控制台扩展可以取消签名 ”选项。
- 完成后,选择 “确定” 以关闭 “层次结构设置属性”。
注意
目前,如果未 为用户通知启用未签名的扩展,在 “控制台扩展” 节点中, “必需” 列将保持空白,而不是填充值 “否”。
使用脚本导入已签名的控制台扩展
(适用于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 脚本来导入已签名或未签名的控制台扩展。 若要使用向导导入控制台扩展,请执行以下操作:
- 在“管理”工作区中,展开“汇报”和“服务”,然后选择“控制台扩展”节点。
- 从功能区或右键单击菜单中选择 “导入控制台扩展 ”。
- 向导启动时,选择“ 浏览 ”并导航到扩展的 cab 文件。
- 如果需要,请选择“ 允许取消签名扩展”选项。
- 选择“ 下一步 ”查看导入摘要,然后完成向导以导入扩展。
注意
若要导入未签名的扩展,需要在“层次结构设置”中启用“层次结构批准的控制台扩展可以未签名”选项。 有关详细信息,请参阅 允许未经签名的层次结构批准的控制台扩展。
在本地主机上安装和测试扩展
更改扩展 的安全范围 。 建议对扩展进行初始测试,更改安全范围。
- 转到“管理>概述>汇报和服务”下的“控制台扩展”节点。
- 选择扩展,然后从功能区中选择“ 设置安全作用域 ”。
- 删除 默认 安全范围,并添加仅包含一个或两个管理员进行初始测试的范围。
- 选择 “确定” 以保存扩展的安全范围。
通过从功能区或右键单击菜单中选择“ 批准安装” 来批准扩展。
- 如果扩展未获得批准,则无法安装该扩展或为其启用控制台内通知。
- 如果此时重启主机,将不会显示有关可用扩展的通知,因为你尚未启用 选项。
通过选择“安装”在本地主机上 安装扩展。
安装扩展后,请验证它是否显示,是否可以从本地控制台使用它。
为扩展安装启用用户通知
- 如果需要,请修改扩展的安全范围,以允许更多管理员进行访问。 这些管理员将通过安装扩展的控制台内通知成为目标。
- 选择 “启用通知”。
- 启动未安装扩展的Configuration Manager控制台。 理想情况下,请使用在修改安全作用域时授予访问权限的测试帐户。
- 验证是否发生了扩展通知,以及是否可以安装扩展。