Condividi tramite


Registrazione dell'estensione della console tramite l'hub della community

Gli autori di estensioni della console possono contribuire con le estensioni scritte nell'hub della community. Gli utenti dell'hub della community possono scaricare le estensioni e gestirle nell'intera gerarchia Configuration Manager. Il contributo delle estensioni tramite l'hub della community sostituisce il processo di distribuzione precedente.

Informazioni sulla versione

Per scaricare le estensioni della console dall'hub della community, è necessario:

  • Versione technical preview di Configuration Manager
  • Configuration Manager versione 2103 o successiva

È possibile testare le proprie estensioni firmate importandole localmente con le versioni seguenti:

  • Versione technical preview di Configuration Manager
  • Configuration Manager versione 2103 o successiva

È possibile importare un'estensione non firmata in locale. Le estensioni non firmate sono solo a scopo di importazione e test locali. Le estensioni non firmate non possono essere inviate all'hub della community. L'importazione di un'estensione non firmata richiede una delle versioni seguenti:

A partire dalla versione 2111, è possibile importare sia le estensioni firmate che non firmate tramite l'Importazione guidata estensione console.

Prerequisiti

Per registrare un'estensione della console nell'hub della community per il download degli amministratori Configuration Manager, sono necessari i prerequisiti seguenti:

  • Soddisfare tutti i prerequisiti per contribuire all'hub della community

  • Configuration Manager Amministratore completo con tutti i diritti di ambito.

  • Payload valido in un file con firma .cab authenticode quando si è pronti per la pubblicazione. Il .cab file deve contenere gli elementi seguenti:

    • Un file manifesto denominato manifest.xml
    • L'autore e la versione dell'estensione devono essere elencati nel manifest.xml
    • Tutti i file rilevanti per l'estensione devono essere inclusi nel .cab file
      • Ogni file deve essere elencato nel manifesto e avere il nome corretto e l'hash SHA256

Creare un'estensione

La creazione dell'estensione per l'hub della community non è molto diversa da come è stata eseguita in precedenza. Tuttavia, non è più necessario installare i file nella rispettiva %ProgramFiles%\Microsoft Endpoint Manager\AdminConsole\XmlStorage\Extensions cartella. Fa parte della funzione del nuovo manifest.xml file. È comunque possibile creare gli elementi seguenti:

  • Azioni
  • Maschere
  • Classi di gestione
  • Nodi
  • Visualizzazioni
  • Integrare le procedure guidate personalizzate nella console di Configuration Manager usando un framework di procedura guidata di propria scelta
    • Non è possibile creare procedure guidate usando il framework della console di Configuration Manager esistente.
    • Non è possibile modificare o rimuovere i passaggi dalle procedure guidate Configuration Manager esistenti.

Consiglio

Dal repository GitHub dell'hub della community è possibile scaricare il file CAB di un'estensione di esempio.

Creare un file cab di payload valido

Dopo aver creato i file per l'estensione, si creerà il manifest.xml file, quindi li si crea un pacchetto insieme in un file con firma .cab authenticode.

  • Payload valido in un file con firma .cab authenticode. Il .cab file deve contenere gli elementi seguenti:
    • Un file manifesto denominato manifest.xml
    • L'autore e la versione dell'estensione devono essere elencati nel manifest.xml
    • Tutti i file rilevanti per l'estensione devono essere inclusi nel .cab file
      • Ogni file deve essere elencato nel manifesto e avere il nome corretto e l'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>

File manifest.xml di esempio:

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

Registrare l'estensione in un sito per il test

Quando l'estensione è compilata e inserita in un pacchetto in un file con firma .cab authenticode, è possibile testarla in un ambiente lab Configuration Manager. A tale scopo, è possibile pubblicarlo tramite il servizio di amministrazione. Dopo aver inserito l'estensione nel sito, è possibile approvarla e installarla in locale dal nodo Estensioni della console .

Importante

Per i test locali, è possibile importare le estensioni della console non firmate quando si usa la versione 2107 o successiva. Per altre informazioni e altri metodi di importazione, vedere Importare le estensioni della console.

  1. Eseguire lo script di PowerShell seguente dopo aver $adminServiceProvider modificato e $cabFilePath:

    • $adminServiceProvider - Server SMSProvider di primo livello in cui è installato il servizio di amministrazione
    • $cabFilePath - Percorso del file con firma .cab authenticode dell'estensione
    $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. Nella console Configuration Manager passare aPanoramica>dell'amministrazione>Aggiornamenti ed estensioni della console di manutenzione>.

  3. Selezionare l'estensione e quindi scegliere Approva installazione.

  4. Per installare l'estensione nella console corrente, selezionare Installa in Estensione locale.

  5. La riesecuzione dello script di PowerShell con la stessa estensione e la stessa versione sovrascriverà quella esistente corrente.

Condividere l'estensione nell'hub della community

Si applica solo alle versioni technical preview di Configuration Manager

Assicurarsi di essere stati aggiunti all'hub della community e di aver accettato l'invito dopo l'approvazione della richiesta di partecipazione. Contribuisci alle estensioni nello stesso modo in cui contribuisci ad altri oggetti hub della community. Tuttavia, perché sono presenti requisiti aggiuntivi e informazioni aggiuntive che è necessario fornire per un'estensione. Quando si contribuisce con un'estensione della console all'hub della community, il contenuto deve essere firmato. Il contenuto per le estensioni della console non è ospitato da Microsoft. Quando contribuisci all'elemento, ti verrà chiesto di specificare un percorso per il file firmato .cab insieme ad altre informazioni per l'estensione. Per le estensioni che contribuiscono sono necessari gli elementi seguenti:

  • URL contenuto: percorso del file scaricabile .cab
  • Hash SHA-256 del contenuto: hash SHA-256 del .cab file
  • URL di licenza: URL della licenza per l'estensione, ad esempio https://mit-license.org/
  • URL dell'informativa sulla privacy: URL dell'informativa sulla privacy

Importante

Se si importa un'estensione in locale nella console pubblicandola tramite il servizio di amministrazione, il download avrà esito negativo se si tenta di scaricare la stessa estensione dall'hub della community. Per testare il download dell'estensione dall'hub della community, eliminare l'estensione importata e quindi scaricarla dall'hub della community.

Passaggi successivi