Compartilhar via


Registro de extensão de console apesar do hub comunitário

Os autores da extensão de console podem contribuir com extensões que escreveram para o hub da comunidade. Os usuários do hub comunitário podem baixar as extensões e gerenciar a instalação delas em sua hierarquia de Configuration Manager. A contribuição de extensões por meio do hub comunitário 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 um:

  • 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 somente para fins locais de importação e teste. Extensões não assinadas não podem ser enviadas ao hub comunitário. Importar 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 Importar Extensão de Console.

Pré-requisitos

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

  • Atender a todos os pré-requisitos para contribuir com o hub comunitário

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

  • Uma carga válida em um arquivo assinado por .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 no manifest.xml
    • Todos os arquivos relevantes para a extensão devem estar no .cab arquivo
      • Cada arquivo deve ser listado no manifesto e ter o nome correto e o hash SHA256

Criar uma extensão

Criar sua extensão para o hub comunitário não é muito diferente de como ela foi feita 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 Configuration Manager usando uma estrutura de assistente de sua escolha
    • Você não pode criar assistentes usando a estrutura de console Configuration Manager existente.
    • Você não pode modificar ou remover etapas dos assistentes de Configuration Manager existentes.

Dica

No repositório GitHub do hub comunitário, você pode baixar o arquivo de táxi de uma extensão de exemplo.

Criar um arquivo de táxi de carga válido

Depois de criar os arquivos da extensão, você criará o manifest.xml arquivo e empacotará todos eles em um arquivo assinado por .cab autenticação.

  • Uma carga válida em um arquivo assinado por .cab autenticado. 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 no manifest.xml
    • Todos os arquivos relevantes para a extensão devem estar no .cab arquivo
      • Cada arquivo deve ser 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 construída e empacotada em um arquivo assinado por autenticado.cab, você pode testá-la em um ambiente de laboratório Configuration Manager. Você fará isso postando-o por meio do serviço de administração. Depois que a extensão for inserida no site, você poderá 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 quando usar a versão 2107 ou posterior. Para obter mais informações e métodos de importação adicionais, consulte Importar extensões de console.

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

    • $adminServiceProvider - O servidor SMSProvider de nível superior em que o serviço de administração está instalado
    • $cabFilePath - Caminho para o arquivo assinado por .cab authenticode da 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>da administração> Atualizações eextensões de console demanutençã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á o atual existente.

Compartilhar sua extensão no hub comunitário

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

Verifique se você ingressou no hub comunitário e que aceitou o convite após a aprovação da solicitação de ingressamento. Você contribui com extensões da mesma forma que contribui com outros objetos do hub comunitário. No entanto, para há requisitos adicionais 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 das extensões de console não é hospedado por Microsoft. Ao contribuir com seu item, você será solicitado a fornecer um local para o arquivo assinado .cab junto com outras informações para a extensão. Os seguintes itens são necessários para as extensões de contribuição:

  • URL de conteúdo: local para o arquivo para download .cab
  • Hash SHA-256 do conteúdo: hash SHA-256 do .cab arquivo
  • URL de licença: URL da licença para a extensão, como https://mit-license.org/
  • URL da instrução de privacidade: URL da sua instrução 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 community. Para testar o download da sua extensão do hub da Comunidade, exclua a extensão importada e baixe do Hub comunitário.

Próximas etapas