Partage via


Inscription de l’extension de console via le hub de la communauté

Les auteurs d’extensions de console peuvent contribuer aux extensions qu’ils ont écrites dans le hub de la communauté. Les utilisateurs du hub communauté peuvent télécharger les extensions et gérer leur installation dans leur hiérarchie Configuration Manager. La contribution d’extensions via community hub remplace le processus de déploiement précédent.

Informations de version

Pour télécharger des extensions de console à partir du hub Communauté, vous avez besoin des éléments suivants :

  • Une version Technical Preview de Configuration Manager
  • Configuration Manager version 2103 ou ultérieure

Vous pouvez tester vos propres extensions signées en les important localement avec les versions suivantes :

  • Une version Technical Preview de Configuration Manager
  • Configuration Manager version 2103 ou ultérieure

Vous pouvez importer une extension non signée localement. Les extensions non signées sont destinées uniquement à des fins d’importation et de test locales. Les extensions non signées ne peuvent pas être envoyées au hub communauté. L’importation d’une extension non signée nécessite l’une des versions suivantes :

À partir de la version 2111, vous pouvez importer des extensions signées et non signées à l’aide de l’Assistant Importation d’extension de console.

Conditions préalables

Pour inscrire une extension de console dans le hub communauté que les administrateurs Configuration Manager peuvent télécharger, vous avez besoin des prérequis suivants :

  • Respecter toutes les conditions préalables pour contribuer au hub de la communauté

  • Configuration Manager Administrateur complet avec tous les droits d’étendue.

  • Charge utile valide dans un fichier signé .cab authenticode une fois que vous êtes prêt à publier. Votre .cab fichier doit contenir les éléments suivants :

    • Un fichier manifeste nommé manifest.xml
    • L’auteur et la version de l’extension doivent être répertoriés dans le manifest.xml
    • Tous les fichiers pertinents pour l’extension doivent se trouver dans le .cab fichier
      • Chaque fichier doit être répertorié dans le manifeste et avoir le nom et le hachage SHA256 corrects

Créer une extension

La création de votre extension pour community hub n’est pas très différente de la façon dont elle a été effectuée précédemment. Toutefois, il n’est plus nécessaire d’installer les fichiers dans leur dossier respectif %ProgramFiles%\Microsoft Endpoint Manager\AdminConsole\XmlStorage\Extensions . Cela fait partie de la fonction du nouveau manifest.xml fichier. Vous pouvez toujours créer les éléments suivants :

  • Actions
  • Forms
  • Classes de gestion
  • Nodes
  • Views
  • Intégrer vos propres Assistants personnalisés dans la console Configuration Manager à l’aide d’une infrastructure d’Assistant de votre choix
    • Vous ne pouvez pas créer d’Assistants à l’aide de l’infrastructure de console Configuration Manager existante.
    • Vous ne pouvez pas modifier ou supprimer des étapes des Assistants Configuration Manager existants.

Conseil

À partir du dépôt GitHub du hub community, vous pouvez télécharger un exemple de fichier cab d’extension.

Créer un fichier cab de charge utile valide

Une fois que vous avez créé les fichiers de votre extension, vous créez le manifest.xml fichier, puis vous les empaquetez tous dans un fichier signé .cab authenticode.

  • Charge utile valide dans un fichier signé .cab authenticode. Votre .cab fichier doit contenir les éléments suivants :
    • Un fichier manifeste nommé manifest.xml
    • L’auteur et la version de l’extension doivent être répertoriés dans le manifest.xml
    • Tous les fichiers pertinents pour l’extension doivent se trouver dans le .cab fichier
      • Chaque fichier doit être répertorié dans le manifeste et avoir le nom et le hachage SHA256 corrects

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

Exemple de fichier 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>

Inscrire l’extension sur un site à des fins de test

Lorsque votre extension est générée et empaquetée dans un fichier signé .cab authenticode, vous pouvez la tester dans un environnement de laboratoire Configuration Manager. Pour ce faire, vous le publierez via le service d’administration. Une fois l’extension insérée dans le site, vous pouvez l’approuver et l’installer localement à partir du nœud Extensions de console .

Importante

Pour les tests locaux, vous pouvez importer des extensions de console non signées lorsque vous utilisez la version 2107 ou ultérieure. Pour plus d’informations et pour d’autres méthodes d’importation, consultez Importer des extensions de console.

  1. Exécutez le script PowerShell suivant après avoir modifié et $adminServiceProvider$cabFilePath:

    • $adminServiceProvider - Serveur SMSProvider de niveau supérieur sur lequel le service d’administration est installé
    • $cabFilePath - Chemin d’accès au fichier signé .cab authenticode de l’extension
    $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. Dans la console Configuration Manager, accédez àVue d’ensemble> de l’administration> Mises à jour etExtensions de consolede maintenance>.

  3. Sélectionnez votre extension, puis choisissez Approuver l’installation.

  4. Pour installer l’extension sur la console actuelle, sélectionnez Installer sous Extension locale.

  5. Le réexécution du script PowerShell avec la même extension et la même version remplace le script existant actuel.

Partager votre extension sur le hub de la communauté

S’applique uniquement aux versions Technical Preview de Configuration Manager

Vérifiez que vous avez rejoint le hub de la communauté et que vous avez accepté l’invitation une fois votre demande de participation approuvée. Vous contribuez aux extensions de la même façon que vous contribueriez à d’autres objets hub de la communauté. Toutefois, il existe des exigences supplémentaires et des informations supplémentaires que vous devez fournir pour une extension. Lorsque vous apportez une extension de console au hub Communauté, le contenu doit être signé. Le contenu des extensions de console n’est pas hébergé par Microsoft. Lorsque vous contribuez à votre élément, vous êtes invité à fournir un emplacement au fichier signé .cab , ainsi que d’autres informations pour l’extension. Les éléments suivants sont requis pour contribuer aux extensions :

  • URL du contenu : emplacement du fichier téléchargeable .cab
  • Hachage SHA-256 du contenu : hachage SHA-256 du .cab fichier
  • URL de la licence : URL de la licence de l’extension, par exemple https://mit-license.org/
  • URL de la déclaration de confidentialité : URL de votre déclaration de confidentialité

Importante

Si vous importez une extension localement dans la console en la publiant via le service d’administration, le téléchargement échoue si vous tentez de télécharger la même extension à partir du hub Communauté. Pour tester le téléchargement de votre extension à partir du hub Communauté, supprimez l’extension importée, puis téléchargez-la à partir du hub communauté.

Prochaines étapes