Compartir a través de


Registro de la extensión de consola en el centro de la comunidad

Los autores de extensiones de consola pueden contribuir con las extensiones que han escrito en el centro de la comunidad. Los usuarios del centro de la comunidad pueden descargar las extensiones y administrar la instalación de ellas en su jerarquía de Configuration Manager. La contribución de extensiones a través del centro de comunidad reemplaza al proceso de implementación anterior.

Información de versión

Para descargar las extensiones de consola desde el centro de comunidad, necesitará lo siguiente:

  • Una versión de technical preview de Configuration Manager
  • Configuration Manager versión 2103 o posterior

Puede probar sus propias extensiones firmadas importándolas localmente con las siguientes versiones:

  • Una versión de technical preview de Configuration Manager
  • Configuration Manager versión 2103 o posterior

Puede importar una extensión sin firmar localmente. Las extensiones sin firmar son solo con fines de importación y pruebas locales. Las extensiones sin firmar no se pueden enviar al centro de comunidad. La importación de una extensión sin firmar requiere una de las versiones siguientes:

A partir de la versión 2111, puede importar extensiones firmadas y sin firmar mediante el Asistente para importar extensiones de consola.

Requisitos previos

Para registrar una extensión de consola en el centro de la comunidad para que Configuration Manager administradores se descarguen, necesitará los siguientes requisitos previos:

  • Cumplir todos los requisitos previos para contribuir al centro de la comunidad

  • Configuration Manager administrador completo con todos los derechos de ámbito.

  • Una carga válida en un archivo firmado .cab por authenticode una vez que esté listo para publicar. El .cab archivo debe contener los siguientes elementos:

    • Un archivo de manifiesto denominado manifest.xml
    • El autor y la versión de la extensión deben aparecer en manifest.xml
    • Todos los archivos pertinentes para la extensión deben estar en el .cab archivo
      • Cada archivo debe aparecer en el manifiesto y tener el nombre correcto y el hash SHA256

Creación de una extensión

La creación de la extensión para community hub no es muy diferente de cómo se hizo anteriormente. Sin embargo, ya no es necesario instalar los archivos en su carpeta respectiva %ProgramFiles%\Microsoft Endpoint Manager\AdminConsole\XmlStorage\Extensions . Esto forma parte de la función del nuevo manifest.xml archivo. Todavía puede crear los siguientes elementos:

  • Acciones
  • Forms
  • Clases de administración
  • Nodes
  • Vistas
  • Integración de sus propios asistentes personalizados en la consola de Configuration Manager mediante un marco de trabajo de asistente de su elección
    • No se pueden crear asistentes mediante el marco de Configuration Manager consola existente.
    • No puede modificar ni quitar los pasos de los asistentes de Configuration Manager existentes.

Sugerencia

Desde el repositorio de GitHub del centro de comunidad, puede descargar el archivo cab de una extensión de ejemplo.

Creación de un archivo cab de carga útil válido

Una vez que haya creado los archivos de la extensión, creará el manifest.xml archivo y los empaquetará todos juntos en un archivo firmado .cab por authenticode.

  • Una carga válida en un archivo firmado .cab por authenticode. El .cab archivo debe contener los siguientes elementos:
    • Un archivo de manifiesto denominado manifest.xml
    • El autor y la versión de la extensión deben aparecer en manifest.xml
    • Todos los archivos pertinentes para la extensión deben estar en el .cab archivo
      • Cada archivo debe aparecer en el manifiesto y tener el nombre correcto y el hash SHA256

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

Ejemplo manifest.xml archivo:

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

Registro de la extensión en un sitio para realizar pruebas

Cuando tenga la extensión compilada y empaquetada en un archivo firmado .cab por authenticode, puede probarlo en un entorno de laboratorio Configuration Manager. Para ello, se publica a través del servicio de administración. Una vez insertada la extensión en el sitio, puede aprobarla e instalarla localmente desde el nodo Extensiones de consola .

Importante

Para las pruebas locales, puede importar extensiones de consola sin firmar cuando use la versión 2107 o posterior. Para obtener más información y métodos de importación adicionales, vea Importar extensiones de consola.

  1. Ejecute el siguiente script de PowerShell después de editar y $adminServiceProvider$cabFilePath:

    • $adminServiceProvider - El servidor SMSProvider de nivel superior donde está instalado el servicio de administración
    • $cabFilePath - Ruta de acceso al archivo autenticado .cab de la extensión
    $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. En la consola de Configuration Manager, vaya aIntroducción> a la administración>Novedades y Extensiones de consola de> mantenimiento.

  3. Seleccione la extensión y, a continuación, elija Aprobar instalación.

  4. Para instalar la extensión en la consola actual, seleccione Instalar en Extensión local.

  5. Volver a ejecutar el script de PowerShell con la misma extensión y la misma versión sobrescribirá el existente actual.

Compartir la extensión en el centro de la comunidad

Solo se aplica a las versiones de technical preview de Configuration Manager

Asegúrese de que se ha unido al centro de la comunidad y de que ha aceptado la invitación una vez aprobada la solicitud de incorporación. Las extensiones se contribuyen de la misma manera que contribuiría con otros objetos del centro de la comunidad. Sin embargo, para que haya requisitos adicionales e información adicional, debe proporcionar para una extensión. Al contribuir a una extensión de consola en community hub, el contenido debe estar firmado. El contenido de las extensiones de consola no está hospedado por Microsoft. Al contribuir al elemento, se le pedirá que proporcione una ubicación al archivo firmado .cab junto con otra información para la extensión. Los siguientes elementos son necesarios para contribuir a las extensiones:

  • Dirección URL de contenido: ubicación del archivo descargable .cab
  • Hash SHA-256 del contenido: hash SHA-256 del .cab archivo
  • Dirección URL de licencia: dirección URL de la licencia de la extensión, como https://mit-license.org/
  • Dirección URL de la declaración de privacidad: dirección URL de su declaración de privacidad

Importante

Si importa una extensión localmente en la consola publicándola a través del servicio de administración, se producirá un error en la descarga si intenta descargar la misma extensión desde el centro de comunidad. Para probar la descarga de la extensión desde el centro de comunidad, elimine la extensión importada y, a continuación, descárguela desde el centro de comunidad.

Pasos siguientes