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:
- Versão prévia técnica 2105.2 ou posterior.
- Configuration Manager versão 2107 ou posterior
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
- Um arquivo de manifesto chamado
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
- Um arquivo de manifesto chamado
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.
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."}
-
No console Configuration Manager, acesseVisão geral>da administração> Atualizações eextensões de console demanutenção>.
Selecione sua extensão e escolha Aprovar Instalação.
Para instalar a extensão no console atual, selecione Instalar em Extensão Local.
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.