Поделиться через


Регистрация расширения консоли через центр сообщества

Авторы расширений консоли могут добавлять расширения, которые они написали в центре сообщества. Пользователи центра сообщества могут скачивать расширения и управлять их установкой в своей иерархии Configuration Manager. Внесение расширений через Центр сообщества заменяет предыдущий процесс развертывания.

Сведения о версии

Чтобы скачать расширения консоли из Центра сообщества, вам потребуется следующее:

  • Техническая предварительная версия Configuration Manager
  • Configuration Manager версии 2103 или более поздней

Вы можете протестировать собственные подписанные расширения, импортировав их локально со следующими версиями:

  • Техническая предварительная версия Configuration Manager
  • Configuration Manager версии 2103 или более поздней

Вы можете импортировать расширение без знака локально. Неподписанные расширения предназначены только для локального импорта и тестирования. Неподписанные расширения не могут быть отправлены в Центр сообщества. Для импорта расширения без знака требуется одна из следующих версий:

Начиная с версии 2111, вы можете импортировать как подписанные, так и неподписанные расширения с помощью мастера импорта расширений консоли.

Предварительные требования

Чтобы зарегистрировать расширение консоли в центре сообщества для Configuration Manager администраторов, необходимы следующие предварительные требования:

  • Выполнение всех предварительных требований для участия в центре сообщества

  • Configuration Manager полный администратор со всеми правами области.

  • Допустимые полезные данные в файле с подписью .cab authenticode, когда вы будете готовы к публикации. Файл .cab должен содержать следующие элементы:

    • Файл манифеста с именем manifest.xml
    • Автор и версия расширения должны быть указаны в списке manifest.xml
    • Все соответствующие файлы для расширения должны находиться в .cab файле
      • Каждый файл должен быть указан в манифесте и иметь правильное имя и хэш SHA256.

Создание расширения

Создание расширения для центра сообщества не сильно отличается от того, как это было сделано ранее. Однако больше нет необходимости устанавливать файлы в соответствующей %ProgramFiles%\Microsoft Endpoint Manager\AdminConsole\XmlStorage\Extensions папке. Это часть функции нового manifest.xml файла. Вы по-прежнему можете создать следующие элементы:

  • Действия
  • Forms
  • Классы управления
  • Nodes
  • Views
  • Интеграция собственных пользовательских мастеров в консоль Configuration Manager с помощью выбранной платформы мастера
    • Мастеры нельзя создавать с помощью существующей платформы Configuration Manager консоли.
    • Вы не можете изменить или удалить шаги из существующих мастеров Configuration Manager.

Совет

Из репозитория GitHub центра сообщества можно скачать пример CAB-файла расширения.

Создание допустимого cab-файла полезных данных

После создания файлов для расширения вы создадите manifest.xml файл, а затем упаковываете их вместе в файл с подписью .cab authenticode.

  • Допустимые полезные данные в файле с подписью .cab authenticode. Файл .cab должен содержать следующие элементы:
    • Файл манифеста с именем manifest.xml
    • Автор и версия расширения должны быть указаны в списке manifest.xml
    • Все соответствующие файлы для расширения должны находиться в .cab файле
      • Каждый файл должен быть указан в манифесте и иметь правильное имя и хэш SHA256.

формат Manifest.xml:

<CustomExtensionManifest ExtensionID="{A GUID to identify this extension}" Name="{Name of the extension to be shown in the Console Extension node}" Description="{Description of the extension to be shown in the Console Extension node" Version="{The version of the extension to be shown in the Console Extension node. For example:1.0}" Author="{The author of the extension to be shown in the Console Extension node}">
	<Deployments>
		<ActionExtensionDeployment ParentNode="{the GUID that identify the folder/node you want to place the action under}">
			<FileList>
				<File Name="{The name of the xml file that defines the action. For example: MyAction.xml}">
					<Hash Algorithm="sha256">{The SHA256 hash of this file}</Hash>
				</File>
			</FileList>
		</ActionExtensionDeployment>
		<NodeExtensionDeployment ParentNode="{the GUID that identify the folder you want to place the node under}">
			<FileList>
				<File Name="{The name of the xml file that defines the node. For example: MyNode.xml}">
					<Hash Algorithm="sha256">{The SHA256 hash of this file}</Hash>
				</File>
			</FileList>
		</NodeExtensionDeployment>
		<FormExtensionDeployment>
			<FileList>
				<File Name="{The name of the xml file that defines the form. For example: MyForm.xml}">
					<Hash Algorithm="sha256">{The SHA256 hash of this file}</Hash>
				</File>
				<File Name="{The name of the dll file that defines the form. For example: MyForm.dll}">
					<Hash Algorithm="sha256">{The SHA256 hash of this file}</Hash>
				</File>
			</FileList>
		</FormExtensionDeployment>
		<ManagementClassExtensionDeployment>
			<FileList>
				<File Name="{The name of the xml file that defines the WMI class. For example: MyClass.xml}">
					<Hash Algorithm="sha256">{The SHA256 hash of this file}</Hash>
				</File>
				<File Name="{The name of the dll file that defines the WMI class. For example: MyClass.dll}">
					<Hash Algorithm="sha256">{The SHA256 hash of this file}</Hash>
				</File>
			</FileList>
		</ManagementClassExtensionDeployment>
		<ViewExtensionDeployment>
			<FileList>
				<File Name="{The name of the dll file that defines the view. For example: MyView.dll}">
					<Hash Algorithm="sha256">{The SHA256 hash of this file}</Hash>
				</File>
			</FileList>
		</ViewExtensionDeployment>
        <CabExtensionDeployment>
            <FileList>
                <File Name="{The name of the cab file to deploy. CabExtensionDeployment is used when your payload cab file contains a cab within it that needs to be deployed.  For example: MyCab.cab}">
                    <Hash Algorithm="sha256">{The SHA256 hash of this file}</Hash>
                </File>
            </FileList>
        </CabExtensionDeployment>
	</Deployments>
</CustomExtensionManifest>

Пример файла manifest.xml:

<CustomExtensionManifest ExtensionID="808b9ce3-e574-49be-82be-64ed35d800c5" Name="Nice Console Node and Console Action Extension" Description="Very Useful Extension" Version="1.1" Author="Me">
	<Deployments>
		<NodeExtensionDeployment ParentNode="d61498cb-7b3f-4748-ae3e-026674fb0cbd">
			<FileList>
				<File Name="Test.xml">
					<Hash Algorithm="sha256">543F2947AEA734B6833F275091AC6A159C0FCD341373D6E53062E37281B602B3</Hash>
				</File>
			</FileList>
		</NodeExtensionDeployment>
      <ActionExtensionDeployment ParentNode="172d85e7-bb7a-4479-a6a2-768f175b75cb">
        <FileList>
          <File Name="Test2.xml">
            <Hash Algorithm="sha256">C60FB69B86BF9B2E924FF272292CA2C97864D636B8190C95DC926049651A002E</Hash>
          </File>
        </FileList>
      </ActionExtensionDeployment>
	</Deployments>
</CustomExtensionManifest>

Регистрация расширения на сайте для тестирования

Если расширение будет создано и упаковано в файл со знаком .cab authenticode, его можно протестировать в Configuration Manager лабораторной среде. Это можно сделать, опубликовав его через службу администрирования. После вставки расширения на сайт его можно утвердить и установить локально из узла Расширения консоли .

Важно!

Для локального тестирования можно импортировать неподписанные расширения консоли при использовании версии 2107 или более поздней. Дополнительные сведения и дополнительные методы импорта см. в разделе Импорт расширений консоли.

  1. Запустите следующий сценарий PowerShell после редактирования $adminServiceProvider и $cabFilePath:

    • $adminServiceProvider — сервер SMSProvider верхнего уровня, на котором установлена служба администрирования.
    • $cabFilePath — Путь к файлу расширения с подписью .cab authenticode.
    $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."}
    
  2. В консоли Configuration Manager перейдите в разделОбзор>администрирования>Обновления ирасширения консоли обслуживания>.

  3. Выберите расширение, а затем — Утвердить установку.

  4. Чтобы установить расширение на текущей консоли, выберите Установить в разделе Локальное расширение.

  5. Повторное выполнение скрипта PowerShell с тем же расширением и той же версией приведет к перезаписи текущего существующего.

Предоставление общего доступа к расширению в центре сообщества

Применяется только к версиям technical preview Configuration Manager

Убедитесь, что вы присоединились к центру сообщества и приняли приглашение после утверждения запроса на присоединение. Вы предоставляете расширения так же, как и другие объекты центра сообщества. Однако для этого существуют дополнительные требования и дополнительные сведения, которые необходимо предоставить для расширения. При добавлении расширения консоли в Центр сообщества содержимое должно быть подписано. Содержимое для расширений консоли не размещается в Майкрософт. Когда вы добавите свой элемент, вам будет предложено указать расположение подписанного .cab файла вместе с другими сведениями для расширения. Для добавления расширений требуются следующие элементы:

  • URL-адрес содержимого: расположение скачиваемого .cab файла
  • Хэш SHA-256 содержимого: хэш .cab SHA-256 файла
  • URL-адрес лицензии: URL-адрес лицензии для расширения, например https://mit-license.org/
  • URL-адрес заявления о конфиденциальности: URL-адрес заявления о конфиденциальности

Важно!

Если вы импортируете расширение локально в консоль, опубликовав его через службу администрирования, скачивание завершится ошибкой при попытке скачать то же расширение из Центра сообщества. Чтобы протестировать скачивание расширения из Центра сообщества, удалите импортированное расширение, а затем скачайте его из Центра сообщества.

Дальнейшие действия