Compartilhar via


Registo da extensão da consola no hub da comunidade

Os autores da extensão da consola podem contribuir com extensões que escreveram no hub da comunidade. Os utilizadores do hub da comunidade podem transferir as extensões e gerir a instalação das mesmas na hierarquia Configuration Manager. Contribuir com extensões através do Hub da Comunidade substitui o processo de implementação anterior.

Informação da versão

Para transferir as extensões da consola a partir do Hub da Comunidade, terá de:

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

Pode testar as suas próprias extensões assinadas ao importá-las localmente com as seguintes versões:

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

Pode importar uma extensão não assinada localmente. As extensões não assinadas destinam-se apenas a fins de importação e teste locais. As extensões não assinadas não podem ser submetidas para o Hub da Comunidade. Importar uma extensão não assinada requer uma das seguintes versões:

A partir da versão 2111, pode importar extensões assinadas e não assinadas com o assistente Importar Extensão da Consola.

Pré-requisitos

Para registar uma extensão de consola no hub da comunidade para transferir Configuration Manager administradores, precisará dos seguintes pré-requisitos:

  • Cumprir todos os pré-requisitos para contribuir para o hub da comunidade

  • Configuration Manager Administrador Completo com Todos os direitos de âmbito.

  • Um payload válido num ficheiro assinado por .cab authenticode assim que estiver pronto para publicar. O ficheiro .cab tem de conter os seguintes itens:

    • Um ficheiro de manifesto com o nome manifest.xml
    • O autor e a versão da extensão têm de estar listados na manifest.xml
    • Todos os ficheiros relevantes para a extensão têm de estar no .cab ficheiro
      • Cada ficheiro tem de estar listado no manifesto e ter o nome correto e o hash SHA256

Criar uma extensão

A criação da extensão para o hub da comunidade não é muito diferente da forma como foi feita anteriormente. No entanto, já não é necessário instalar os ficheiros na respetiva %ProgramFiles%\Microsoft Endpoint Manager\AdminConsole\XmlStorage\Extensions pasta. Isto faz parte da função do novo manifest.xml ficheiro. Ainda pode criar os seguintes itens:

  • Ações
  • Forms
  • Classes de gestão
  • Nodes
  • Modos de exibição
  • Integre os seus próprios assistentes personalizados na consola do Configuration Manager com uma estrutura de assistente à sua escolha
    • Não pode criar assistentes com a arquitetura da consola de Configuration Manager existente.
    • Não pode modificar ou remover passos dos assistentes de Configuration Manager existentes.

Dica

A partir do repositório do GitHub do hub da comunidade, pode transferir o ficheiro cab de uma extensão de exemplo.

Criar um ficheiro cab de payload válido

Depois de criar os ficheiros para a extensão, irá criar o manifest.xml ficheiro e, em seguida, empacotá-los todos num ficheiro assinado com .cab autenticação.

  • Um payload válido num ficheiro assinado por .cab authenticode. O ficheiro .cab tem de conter os seguintes itens:
    • Um ficheiro de manifesto com o nome manifest.xml
    • O autor e a versão da extensão têm de estar listados na manifest.xml
    • Todos os ficheiros relevantes para a extensão têm de estar no .cab ficheiro
      • Cada ficheiro tem de 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 ficheiro:

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

Registar a extensão num site para teste

Quando tiver a extensão incorporada e empacotada num ficheiro assinado por .cab authenticode, pode testá-la num ambiente de laboratório Configuration Manager. Irá fazê-lo ao publicá-lo através do serviço de administração. Assim que a extensão for inserida no site, pode aprová-la e instalá-la localmente a partir do nó Extensões da Consola .

Importante

Para testes locais, pode importar extensões de consola não assinadas quando utilizar a versão 2107 ou posterior. Para obter mais informações e métodos de importação adicionais, veja Importar extensões da consola.

  1. Execute o seguinte script do PowerShell após editar o e $cabFilePath:$adminServiceProvider

    • $adminServiceProvider - O servidor SMSProvider de nível superior onde o serviço de administração está instalado
    • $cabFilePath - Caminho para o ficheiro autenticode assinado .cab 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. Na consola Configuration Manager, aceda aDescrição Geral> da Administração>Atualizações eExtensões da Consola de > Manutenção.

  3. Selecione a sua extensão e, em seguida, escolha Aprovar Instalação.

  4. Para instalar a extensão na consola 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.

Partilhar a sua extensão no hub da comunidade

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

Certifique-se de que aderiu ao hub da comunidade e de que aceitou o convite após a aprovação do seu pedido de adesão. Contribui com extensões da mesma forma que contribuiria com outros objetos do hub da comunidade. No entanto, para existirem requisitos adicionais e informações adicionais, tem de fornecer para uma extensão. Quando contribui com uma extensão de consola para o Hub de comunidade, o conteúdo tem de ser assinado. O conteúdo das extensões da consola não é alojado pela Microsoft. Quando contribuir com o item, ser-lhe-á pedido que forneça uma localização para o ficheiro assinado .cab juntamente com outras informações para a extensão. São necessários os seguintes itens para contribuir com extensões:

  • URL do Conteúdo: localização para o ficheiro transferível .cab
  • Hash SHA-256 do conteúdo: HASH SHA-256 do .cab ficheiro
  • URL da licença: URL da licença para a extensão, como https://mit-license.org/
  • URL da declaração de privacidade: URL da declaração de privacidade

Importante

Se importar uma extensão localmente para a consola ao publicá-la através do serviço de administração, a transferência falhará se tentar transferir a mesma extensão a partir do Hub da Comunidade. Para testar a transferência da sua extensão a partir do Hub da Comunidade, elimine a extensão importada e, em seguida, transfira a partir do Hub da Comunidade.

Próximas etapas