Registro de extensão de console através do hub da comunidade

Os autores de extensões de console podem contribuir com as extensões que escreveram no hub da comunidade. Os usuários do hub da comunidade podem baixar as extensões e gerenciar sua instalação na hierarquia do Configuration Manager. A contribuição de extensões por meio do hub da comunidade substitui o processo de implantação anterior.

Informação da versão

Para baixar extensões de console do hub da Comunidade, você precisará de:

  • Uma versão de visualização técnica do Configuration Manager
  • Configuration Manager versão 2103 ou posterior

Você pode testar suas próprias extensões assinadas importando-as localmente com as seguintes versões:

  • Uma versão de visualização técnica do Configuration Manager
  • Configuration Manager versão 2103 ou posterior

Você pode importar uma extensão não assinada localmente. As extensões não assinadas são apenas para fins de importação e teste locais. Extensões não assinadas não podem ser enviadas para o hub da comunidade. A importação de uma extensão não assinada requer uma das seguintes versões:

A partir da versão 2111, você pode importar extensões assinadas e não assinadas usando o assistente de Extensão de Console de Importação.

Pré-requisitos

Para registrar uma extensão de console no hub da comunidade para que os administradores do Configuration Manager baixem, você precisará dos seguintes pré-requisitos:

  • Atenda a todos os pré-requisitos para contribuir com o hub da comunidade

  • Configuration Manager Administrador Completo com todos os direitos de escopo.

  • Um conteúdo válido em um arquivo assinado com .cab authenticode quando você estiver pronto para publicar. Seu .cab arquivo deve conter os seguintes itens:

    • Um arquivo de manifesto chamado manifest.xml
    • O autor e a versão da extensão devem ser listados na manifest.xml
    • Todos os arquivos relevantes para a extensão devem estar no .cab arquivo
      • Cada arquivo deve estar listado no manifesto e ter o nome correto e o hash SHA256

Criar uma extensão

Criar sua extensão para o hub da comunidade não é muito diferente de como era feito anteriormente. No entanto, não há mais necessidade de instalar os arquivos em suas respectivas %ProgramFiles%\Microsoft Endpoint Manager\AdminConsole\XmlStorage\Extensions pastas. Isso faz parte da função do novo manifest.xml arquivo. Você ainda pode criar os seguintes itens:

  • Ações
  • Forms
  • Classes de gerenciamento
  • Nodes
  • Modos de exibição
  • Integre seus próprios assistentes personalizados ao console do Configuration Manager usando uma estrutura de assistente de sua escolha
    • Você não pode criar assistentes usando a estrutura de console do Configuration Manager existente.
    • Não é possível modificar ou remover etapas dos assistentes do Configuration Manager existentes.

Dica

No repositório GitHub do hub da comunidade, você pode baixar o arquivo cab de uma extensão de exemplo.

Criar um arquivo cab de carga válido

Depois de criar os arquivos da sua extensão, você criará o manifest.xml arquivo e os empacotará em um arquivo assinado com .cab authenticode.

  • Uma carga válida em um arquivo assinado com .cab authenticode. Seu .cab arquivo deve conter os seguintes itens:
    • Um arquivo de manifesto chamado manifest.xml
    • O autor e a versão da extensão devem ser listados na manifest.xml
    • Todos os arquivos relevantes para a extensão devem estar no .cab arquivo
      • Cada arquivo deve estar listado no manifesto e ter o nome correto e o hash SHA256

Manifest.xml formato:

<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>

Exemplo manifest.xml arquivo:

<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>

Registrar a extensão em um site para teste

Quando você tiver sua extensão criada e empacotada em um arquivo assinado .cab com authenticode, poderá testá-la em um ambiente de laboratório do Configuration Manager. Você fará isso postando-o por meio do serviço de administração. Depois que a extensão é inserida no site, você pode aprová-la e instalá-la localmente no nó Extensões do console .

Importante

Para testes locais, você pode importar extensões de console não assinadas ao usar a versão 2107 ou posterior. Para obter mais informações e métodos de importação adicionais, consulte Importar extensões do console.

  1. Execute o seguinte script do PowerShell depois de editar o $adminServiceProvider e $cabFilePath:

    • $adminServiceProvider - O servidor SMSProvider de nível superior no qual o serviço de administração está instalado
    • $cabFilePath - Caminho para o arquivo assinado com authenticode da .cab extensão
    $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. No console Configuration Manager, acesseVisão Geral> de Administração>Atualizações e Extensões de Console de>Manutenção.

  3. Selecione sua extensão e escolha Aprovar Instalação.

  4. Para instalar a extensão no console atual, selecione Instalar em Extensão Local.

  5. Executar novamente o script do PowerShell com a mesma extensão e a mesma versão substituirá a atual existente.

Compartilhar sua extensão no hub da comunidade

Aplica-se somente a versões de visualização técnica do Configuration Manager

Verifique se você ingressou no hub da comunidade e se aceitou o convite depois que sua solicitação de ingresso for aprovada. Você contribui com extensões da mesma maneira que contribuiria com outros objetos do hub da comunidade. No entanto, existem requisitos e informações adicionais que você precisa fornecer para uma extensão. Quando você contribui com uma extensão de console para o hub da comunidade, o conteúdo deve ser assinado. O conteúdo para extensões de console não é hospedado pela Microsoft. Ao contribuir com seu item, você será solicitado a fornecer uma localização para o arquivo assinado .cab junto com outras informações para a extensão. Os itens a seguir são necessários para contribuir com extensões:

  • URL do conteúdo: local do arquivo para download .cab
  • Hash SHA-256 do conteúdo: Hash SHA-256 do .cab arquivo
  • URL da licença: URL da licença para a extensão, como https://mit-license.org/
  • URL da política de privacidade: URL de sua política de privacidade

Importante

Se você importar uma extensão localmente para o console postando-a por meio do serviço de administração, o download falhará se você tentar baixar a mesma extensão do hub da comunidade. Para testar o download da sua extensão do hub comunitário, exclua a extensão importada e, em seguida, baixe do hub comunitário.

Próximas etapas