Aracılığıyla paylaş


Konsol uzantısı kaydı ancak topluluk hub'ı

Konsol uzantısı yazarları, topluluk hub'ına yazdıkları uzantılara katkıda bulunabilir. Topluluk hub'ı kullanıcıları uzantıları indirebilir ve Configuration Manager hiyerarşilerinde yüklemelerini yönetebilir. Community hub aracılığıyla uzantılara katkıda bulunmak , önceki dağıtım işleminin yerini alır.

Sürüm bilgileri

Topluluk hub'ından konsol uzantılarını indirmek için aşağıdakilerden birini yapmanız gerekir:

  • Configuration Manager'nin teknik önizleme sürümü
  • Configuration Manager sürüm 2103 veya üzeri

Aşağıdaki sürümlerle yerel olarak içeri aktararak kendi imzalı uzantılarınızı test edebilirsiniz:

  • Configuration Manager'nin teknik önizleme sürümü
  • Configuration Manager sürüm 2103 veya üzeri

İmzalanmamış bir uzantıyı yerel olarak içeri aktarabilirsiniz. İmzalanmamış uzantılar yalnızca yerel içeri aktarma ve test amaçlıdır. İmzalanmamış uzantılar Topluluk hub'ına gönderilemez. İmzalanmamış bir uzantıyı içeri aktarmak için aşağıdaki sürümlerden biri gerekir:

Sürüm 2111'den başlayarak, Konsol Uzantısını İçeri Aktarma sihirbazını kullanarak hem imzalı hem de imzasız uzantıları içeri aktarabilirsiniz.

Önkoşullar

Configuration Manager yöneticilerin indirmesi için topluluk hub'ına bir konsol uzantısı kaydetmek için aşağıdaki önkoşullara ihtiyacınız vardır:

  • Topluluk hub'ına katkıda bulunmak için tüm önkoşulları karşılayın

  • Tüm kapsam haklarıyla Tam Yönetici Configuration Manager.

  • Yayımlamaya hazır olduğunuzda authenticode imzalı .cab bir dosyada geçerli bir yük. Dosyanız .cab aşağıdaki öğeleri içermelidir:

    • adlı bir bildirim dosyası manifest.xml
    • Uzantının yazarı ve sürümümanifest.xml
    • Uzantı için tüm ilgili dosyalar dosyada .cab olmalıdır
      • Her dosyanın bildirimde listelenmesi ve doğru ada ve SHA256 karmasına sahip olması gerekir

Uzantı oluşturma

Topluluk hub'ı için uzantınızı oluşturmak, daha önce yapılan uzantıdan çok farklı değildir. Ancak, artık dosyaları ilgili %ProgramFiles%\Microsoft Endpoint Manager\AdminConsole\XmlStorage\Extensions klasöre yüklemenize gerek yoktur. Bu, yeni manifest.xml dosyanın işlevinin bir parçasıdır. Yine de aşağıdaki öğeleri oluşturabilirsiniz:

  • Eylem
  • Forms
  • Yönetim sınıfları
  • Düğüm
  • Görünümler
  • Kendi özel sihirbazlarınızı seçtiğiniz bir sihirbaz çerçevesini kullanarak Configuration Manager konsoluyla tümleştirme
    • Mevcut Configuration Manager konsol çerçevesini kullanarak sihirbaz oluşturamazsınız.
    • Mevcut Configuration Manager sihirbazlarında adımları değiştiremez veya kaldıramazsınız.

İpucu

Community Hub'ın GitHub deposundan örnek bir uzantının cab dosyasını indirebilirsiniz.

Geçerli bir yük cab dosyası oluşturma

Uzantınızın dosyalarını oluşturduktan sonra dosyayı oluşturacak manifest.xml ve ardından tümünü authenticode imzalı .cab bir dosyada paketleyeceksiniz.

  • Authenticode imzalı .cab bir dosyada geçerli bir yük. Dosyanız .cab aşağıdaki öğeleri içermelidir:
    • adlı bir bildirim dosyası manifest.xml
    • Uzantının yazarı ve sürümümanifest.xml
    • Uzantı için tüm ilgili dosyalar dosyada .cab olmalıdır
      • Her dosyanın bildirimde listelenmesi ve doğru ada ve SHA256 karmasına sahip olması gerekir

Manifest.xml biçimi:

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

Örnek manifest.xml dosyası:

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

Uzantıyı test için bir siteye kaydetme

Uzantınızı derleyip authenticode imzalı .cab bir dosyaya paketledikten sonra Configuration Manager laboratuvar ortamında test edebilirsiniz. Bunu , yönetim hizmeti aracılığıyla göndererek yaparsınız. Uzantı siteye eklendikten sonra, uzantıyı onaylayabilir ve Konsol Uzantıları düğümünden yerel olarak yükleyebilirsiniz.

Önemli

Yerel test için, 2107 veya sonraki bir sürümü kullandığınızda imzalanmamış konsol uzantılarını içeri aktarabilirsiniz. Daha fazla bilgi ve ek içeri aktarma yöntemleri için bkz. Konsol uzantılarını içeri aktarma.

  1. ve $cabFilePathdosyasını düzenledikten $adminServiceProvider sonra aşağıdaki PowerShell betiğini çalıştırın:

    • $adminServiceProvider - Yönetim hizmetinin yüklendiği en üst düzey SMSProvider sunucusu
    • $cabFilePath - Uzantının authenticode imzalı .cab dosyasının yolu
    $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. Configuration Manager konsolunda Yönetime>Genel Bakış>Güncelleştirmeler ve HizmetKonsolu Uzantıları'na> gidin.

  3. Uzantınızı seçin ve ardından Yüklemeyi Onayla'yı seçin.

  4. Uzantıyı geçerli konsola yüklemek için Yerel Uzantı'nın altında Yükle'yi seçin.

  5. PowerShell betiğini aynı uzantıyla ve aynı sürümle yeniden çalıştırmak, mevcut olanın üzerine yazılır.

Uzantınızı topluluk merkezinde paylaşma

Yalnızca Configuration Manager teknik önizleme sürümleri için geçerlidir

Topluluk hub'ına katıldığınızdan ve katılma isteğiniz onaylandıktan sonra daveti kabul ettiğinizden emin olun. Uzantıları , diğer topluluk merkezi nesnelerine katkıda bulunacağınız şekilde katkıda bulunursunuz. Ancak, ek gereksinimler ve uzantı için sağlamanız gereken ek bilgiler vardır. Topluluk hub'ına bir konsol uzantısı eklediğinizde içeriğin imzalanması gerekir. Konsol uzantılarının içeriği Microsoft tarafından barındırılmıyor. Öğenize katkıda bulunduğunuzda, uzantıyla ilgili diğer bilgilerle birlikte imzalı .cab dosyaya bir konum sağlamanız istenir. Uzantılara katkıda bulunmak için aşağıdaki öğeler gereklidir:

  • İçerik URL'si: İndirilebilir .cab dosyanın konumu
  • İçeriğin SHA-256 karması: dosyanın SHA-256 karması .cab
  • Lisans URL'si: Uzantı lisansının URL'si, örneğin https://mit-license.org/
  • Gizlilik bildirimi URL'si: Gizlilik bildiriminizin URL'si

Önemli

Bir uzantıyı yönetim hizmeti aracılığıyla göndererek konsola yerel olarak aktarırsanız, Topluluk hub'ından aynı uzantıyı indirmeye çalışırsanız indirme başarısız olur. Uzantınızın Topluluk hub'ından indirilmesini test etmek için içeri aktarılan uzantıyı silin ve Topluluk hub'ından indirin.

Sonraki adımlar