Citrix DaaS™

Kataloge mit vorbereiteten Images in Azure erstellen

  • Erstellen Sie vorbereitete Images und verwenden Sie diese, um einen MCS-Maschinenkatalog zu erstellen, indem Sie Folgendes nutzen:

  • Studio
  • PowerShell-Befehle

Die wichtigsten Schritte zum Erstellen eines MCS-Maschinenkatalogs mit dem vorbereiteten Image sind:

  1. Erstellen Sie die Imagestruktur und die anfänglichen Imageversionen.
  2. Verwenden Sie die Imageversion als vorbereitetes Image, um einen Katalog zu erstellen.

Studio verwenden

Imagestruktur und anfängliche Imageversion erstellen

Gehen Sie wie folgt vor, um eine Imagestruktur und die anfängliche Imageversion zu erstellen:

  1. Navigieren Sie in Studio zum Knoten Images und klicken Sie auf Imagestruktur erstellen. Klicken Sie auf der Seite Einführung auf Weiter.
  2. Geben Sie auf der Seite Imagestruktur den OS-Typ und den Sitzungstyp für die Imagestruktur an.
  3. Wählen Sie eine vorhandene Ressourcengruppe aus oder erstellen Sie eine neue, um die Imagressourcen aufzunehmen. Um die Imagefreigabe zu aktivieren, wählen Sie Imageversionen in der Azure Compute Gallery platzieren und wählen Sie dann, ob Sie eine neue Galerie erstellen oder eine vorhandene verwenden möchten, um die Imageversionen aufzunehmen.
  4. Wählen Sie auf der Seite Image die Option Ressourcen (nur die für die festgelegte Verbindung anwendbaren Ressourcen werden aufgelistet) und ein Masterimage aus, das als Vorlage zum Erstellen der Imageversion verwendet werden soll. Sie können das Kontrollkästchen Maschinenprofil verwenden aktivieren und ein Maschinenprofil auswählen.

    Hinweis:

    • Vergewissern Sie sich vor der Auswahl eines Images, dass auf dem Masterimage VDA 2311 oder höher installiert ist und der MCSIO-Treiber auf dem VDA installiert ist.
      • Wenn Sie ein vorbereitetes Image vom Typ vertrauliche VM verwenden möchten, um einen MCS-Katalog zu erstellen, erstellen Sie ein vorbereitetes Image mit dem Masterimage vom Typ vertrauliche VM und einem Maschinenprofil vom Typ vertrauliche VM. Informationen zur Vorbereitung von Masterimages und Maschinenprofilen vom Typ vertrauliche VM finden Sie unter Vertrauliche Azure-VMs.
  5. Wählen Sie auf der Seite Speicher- und Lizenztypen den Speicher- und Lizenztyp aus, der im Rahmen des Imagevorbereitungsprozesses verwendet werden soll.

    Hinweis:

    Wenn Sie auf der Seite Image ein Maschinenprofil auswählen, wird der Lizenztyp des Maschinenprofils basierend auf der Profileinstellung vorab ausgewählt.

  6. Wählen Sie auf der Seite Maschinenspezifikation eine Maschinengröße aus. Wenn Sie auf der Seite Image ein Maschinenprofil auswählen, wird die Maschinengröße des Maschinenprofils standardmäßig ausgewählt.
  7. Wählen oder fügen Sie auf der Seite NICs NICs für das Vorbereitungsimage hinzu. Wählen Sie für jede NIC ein zugehöriges virtuelles Netzwerk aus.
  8. Wählen Sie auf der Seite Datenträgereinstellungen den vom Kunden verwalteten Verschlüsselungsschlüssel (CMEK) aus. Wenn das Maschinenprofil keinen CMEK hat, das Masterimage jedoch einen, wird der CMEK aus dem Masterimage vorab ausgewählt.
  9. Geben Sie auf der Seite Versionsbeschreibung eine Beschreibung für die erstellte anfängliche Imageversion ein.
  10. Überprüfen Sie auf der Seite Zusammenfassung die Details der Imagestruktur und der erstellten anfänglichen Imageversion. Geben Sie einen Namen und eine Beschreibung für die Imagestruktur ein. Klicken Sie auf Fertig stellen.

Imageversionen erstellen

Imageversionen ermöglichen die Verwaltung verschiedener Iterationen oder Updates eines bestimmten Images. Diese Funktionalität ermöglicht es Ihnen, mehrere Versionen eines Images für verschiedene Zwecke zu verwalten.

Gehen Sie wie folgt vor, um Imageversionen aus der anfänglichen Imageversion zu erstellen:

Hinweis:

Die Hosting-Einheit aller Imageversionen muss identisch sein.

  1. Navigieren Sie zum Knoten Images, wählen Sie eine Imageversion oder eine Imagestruktur aus und klicken Sie auf Imageversion erstellen.
  2. Auf der Seite Imagestruktur können Sie die Hosting-Einheit ändern und das Masterimage sowie das Maschinenprofil für diese Imageversion neu auswählen.
  3. Wenn die Konfiguration der Imageversion von der anfänglich konfigurierten Imageversion abweichen soll, konfigurieren Sie die Einstellungen auf den Seiten Speicher- und Lizenztypen, Maschinenspezifikation, NICs und Datenträgereinstellungen des Dialogfelds Imageversion erstellen.
  4. Fügen Sie eine Beschreibung für die Imageversion hinzu. Klicken Sie auf Fertig stellen.

Imageversionen erstellen

Hinweis:

Wenn die Erstellung der Imageversion aus irgendeinem Grund fehlschlägt, bietet die Registerkarte Problembehandlung unten eine Option zum Wiederholen.

Vorbereitetes Image freigeben

Gehen Sie wie folgt vor, um vorbereitete Images über verschiedene Hosting-Einheiten für Azure hinweg freizugeben:

  1. Klicken Sie mit der rechten Maustaste auf eine Imageversion und wählen Sie Imagefreigabe verwalten. Alle Hosting-Einheiten in Ihrer Azure-Umgebung werden angezeigt. Die Ressourcen, aus denen die Imageversion erstellt wurde, sind für Aktionen deaktiviert.
  2. Wählen Sie die Hosting-Einheiten aus, mit denen Sie das Image freigeben möchten, und klicken Sie auf Speichern. Die Spalte Freigabestatus zeigt In Bearbeitung an.
  3. Klicken Sie auf die Registerkarte Ressourcen, um weitere Details zum Freigabestatus zu erhalten.

Hinweis:

Wenn der Status der Imageversionsfreigabe In Bearbeitung ist, sind die Optionen Imageversion löschen oder Imagefreigabe verwalten deaktiviert.

Maschinenkatalog aus dem Knoten „Bilder“ erstellen

Verwenden Sie die Option Katalog erstellen im Knoten Bilder, um einen Katalog mithilfe der Imageversion zu erstellen.

Alternativ können Sie die Version beim Erstellen eines Katalogs im Knoten Maschinenkataloge auswählen, wobei Sie auf die Option für vorbereitete Images im Workflow zur Katalogerstellung verweisen. Siehe Maschinenkatalog aus dem Knoten „Maschinenkataloge“ erstellen

Gehen Sie wie folgt vor, um einen MCS-Maschinenkatalog aus dem Knoten Bilder zu erstellen:

  1. Wählen Sie eine Imageversion aus, und klicken Sie auf Katalog erstellen. Klicken Sie auf der Seite Einführung auf Weiter.
  2. Wählen Sie auf der Seite Desktop-Erfahrung die gewünschte Desktop-Erfahrung aus.
  3. Von der Seite Image bis zur Seite Datenträgereinstellungen sind die Einstellungen basierend auf der ausgewählten Imageversion vorausgewählt.
  4. Auf der Seite Ressourcengruppe können Sie eine neue Ressourcengruppe erstellen oder eine vorhandene Ressourcengruppe verwenden, um die Ressourcen dieses Katalogs zu platzieren.
  5. Schließen Sie die Einstellungen auf den folgenden Seiten ab.
  6. Überprüfen Sie auf der Seite Zusammenfassung die Details des Maschinenkatalogs. Geben Sie einen Namen und eine Beschreibung für den Maschinenkatalog ein. Klicken Sie auf Fertig stellen.
  7. Gehen Sie zum Knoten Maschinenkataloge, um den erstellten Maschinenkatalog anzuzeigen.

Maschinenkatalog aus dem Knoten „Maschinenkataloge“ erstellen

Gehen Sie wie folgt vor, um einen MCS-Maschinenkatalog aus dem Knoten Maschinenkataloge zu erstellen:

-  1.  Klicken Sie im linken Navigationsbereich auf **Maschinenkataloge**.
-  1.  Klicken Sie auf **Maschinenkatalog erstellen**. Die Seite **Maschinenkatalog-Setup** wird angezeigt. Klicken Sie auf den Seiten **Einführung** und **Maschinentyp** auf **Weiter**.
  1. Wählen Sie auf der Seite Maschinenverwaltung die folgenden Einstellungen aus:
      1. Wählen Sie Maschinen, die energieverwaltet sind (z. B. virtuelle Maschinen oder Blade-PCs) aus.
        1. Wählen Sie Citrix Provisioning-Technologie aus. Wählen Sie dann Citrix Machine Creation Services™ aus.
        2. Im Feld Ressourcen werden die Ressourcen verschiedener Zonen aufgelistet. Wählen Sie eine beliebige Azure-Netzwerkressource aus, und klicken Sie auf Weiter.
  2. Auf der Seite Image:

    Gehen Sie für den Imagetyp „Vorbereitetes Image“ wie folgt vor:

    1. Wählen Sie Vorbereitetes Image aus.
    2. Wählen Sie unter Vorbereitetes Image eine Imageversion einer Imagedefinition aus. Fügen Sie bei Bedarf eine Notiz für die ausgewählte vorbereitete Imageversion hinzu.
    3. Klicken Sie auf den Namen der Imageversion. Um weitere Details zur ausgewählten Imageversion anzuzeigen, klicken Sie auf die Versionsnummer, die unterstrichen ist.
        1. Wenn die ausgewählte Imageversion mit einem Maschinenprofil konfiguriert ist, wählen Sie ein Maschinenprofil aus. Wenn die ausgewählte Imageversion nicht mit einem Maschinenprofil konfiguriert ist, können Sie kein Maschinenprofil verwenden.
  3. Konfigurieren Sie die Einstellungen auf den folgenden Seiten.
  4. Wenn auf der Seite Datenträgereinstellungen das ausgewählte vorbereitete Image einen Datenträgerverschlüsselungssatz verwendet, können Sie den Verschlüsselungssatz nicht entfernen, aber den Schlüssel in einen anderen Verschlüsselungsschlüssel ändern.
  5. Auf der Seite Ressourcengruppe können Sie eine neue Ressourcengruppe erstellen oder eine vorhandene Ressourcengruppe verwenden, um die Ressourcen dieses Katalogs zu platzieren.
  6. Schließen Sie die Einstellungen auf den folgenden Seiten ab.
  7. Überprüfen Sie auf der Seite Zusammenfassung die Details des Maschinenkatalogs. Geben Sie einen Namen und eine Beschreibung für den Maschinenkatalog ein. Klicken Sie auf Fertig stellen.

PowerShell verwenden

Vorbereitetes Image erstellen

Die detaillierten PowerShell-Befehle zum Erstellen einer Spezifikation für eine vorbereitete Imageversion lauten wie folgt:

  1. Überprüfen Sie die verfügbaren Imagedefinitionsnamen mit dem Befehl Test-ProvImageDefinitionNameAvailable. Beispiel:

    
    Test-ProvImageDefinitionNameAvailable -ImageDefinitionName <string[]>
    
    <!--NeedCopy-->
    
      1. Erstellen Sie eine Imagedefinition mit dem Befehl New-ProvImageDefinition. Beispiel:
    
    New-ProvImageDefinition -ImageDefinitionName image1 -OsType Windows -VdaSessionSupport MultiSession
    
    <!--NeedCopy-->
    
  2. Erstellen Sie eine neue Konfiguration für die Imagedefinition in der angegebenen Hosting-Verbindung mit dem Befehl Add-ProvImageDefinitionConnection.

    Die CustomProperties für Add-ProvImageDefinitionConnection können Folgendes enthalten. Wenn Sie die Parameter nicht verwenden, werden Standardwerte verwendet.

    • ResourceGroups: Die Ressourcengruppe, die die Basisdatenträger enthält.
    • UseSharedImageGallery: Indikator für den Typ der Basisdatenträger. Verwenden Sie true für ACG (Image-Freigabe) und false für Snapshot.
    • ImageGallery: Der Galeriename, wenn der Basisdatenträger eine ACG-Imageversion ist.

    Beispiel:

    • Im Falle eines Snapshots und einer vom Kunden bereitgestellten Ressourcengruppe:

      
       $CustomerOwnRsourceGroupProperties = @"
       <CustomProperties xmlns="http:// schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <Property xsi:type="StringProperty" Name="ResourceGroups" Value="yangj_image" />
       </CustomProperties>
       "@
      
       <!--NeedCopy-->
      
    • Im Falle von ACG und einer vom Kunden bereitgestellten Ressourcengruppe und Image-Galerie:

      
       $CustomerOwnAllProperties = @"
       <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <Property xsi:type="StringProperty" Name="UseSharedImageGallery" Value="true" />
       <Property xsi:type="StringProperty" Name="ResourceGroups" Value="rg" />
      
       <Property xsi:type="StringProperty" Name="ImageGallery" Value="gallery" />
       </CustomProperties>
       "@
      
       <!--NeedCopy-->
      
    • In case of ACG and customer provided resource group only:

      
      $CustomerOwnResourceGroupProperties = @"
      <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <Property xsi:type="StringProperty" Name="UseSharedImageGallery" Value="true" />
      <Property xsi:type="StringProperty" Name="ResourceGroups" Value="rg" />
      </CustomProperties>
      "@
      
      <!--NeedCopy-->
      
    • In case of ACG and resource group and image gallery managed by Citrix:

      
       $CustomerOwnResourceGroupNothingProperties = @"
       <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <Property xsi:type="StringProperty" Name="UseSharedImageGallery" Value="true" />
       </CustomProperties>
       "@
      
       <!--NeedCopy-->
      
    
    Add-ProvImageDefinitionConnection -ImageDefinitionName image1 -HypervisorConnectionName Azure28 [-CustomProperties $CustomProperties]
    
    <!--NeedCopy-->
    
  3. Create an image version using the New-ProvImageVersion command. For example,

    
    New-ProvImageVersion -ImageDefinitionName image1 -Description "version 1"
    
    <!--NeedCopy-->
    
  4. Add a master image version spec to the image version using the Add-ProvImageVersionSpec command. For example,

    
    Add-ProvImageVersionSpec -ImageDefinitionName  image1  -ImageVersionNumber  1 -HostingUnitName azure -MasterImagePath "XDHyp:\HostingUnits\azure\image.folder\azureresourcegroup.resourcegroup\win2022-snapshot.snapshot"
    
    <!--NeedCopy-->
    

    Note:

    You can add only one master image version spec to one image version for a hosting unit.

  5. Create a prepared image version spec from the master image version spec using the New-ProvImageVersionSpec command.

    The CustomProperties for New-ProvImageVersionSpec can include the following. If you do not use the parameters, then default values are used:

    • PreparedImageStorageType: The storage type to use for the prepared image. Defaults to Standard_LRS, can also be Premium_LRS or Standard_ZRS. Standard_ZRS provides zone redundancy for the image.
    
    New-ProvImageVersionSpec
    -SourceImageVersionSpecUid  c6e7384c-b2f8-46d6-9519-29a2c57ed3cb
    -NetworkMapping @{"0"="XDHyp:\HostingUnits\azure\virtualprivatecloud.folder\azureresourcegroup.resourcegroup\azure-vnet-eastus.virtualprivatecloud\dev.network"}
    -ServiceOffering"XDHyp:\HostingUnits\azure\serviceoffering.folder\Standard_B2ms.serviceoffering" -CustomProperties "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`"></CustomProperties>" -RunAsynchronously
    
    <!--NeedCopy-->
    
  6. You can also share a prepared image version spec with another hosting unit in all hosting connections by using the Add-ProvImageVersionSpecHostingUnit command.

    The CustomProperties for Add-ProvImageVersionSpecHostingUnit can include the following. If you do not use the parameters, then values from the source prepared image spec are used:

    • PreparedImageStorageType: The storage type to use for the prepared image.
    
    Add-ProvImageVersionSpecHostingUnit -ImageVersionSpecUid xxxxxxx -HostingUnitName AzureWest
    
    <!--NeedCopy-->
    

    Note:

    One hosting unit and preparation type can have only one prepared instance.

Example of the complete set of Powershell commands to create image definition, image version, and prepared image version spec:


New-ProvImageDefinition -ImageDefinitionName image1 -OsType Windows -VdaSessionSupport MultiSession 

-  $ImageDefinitionCustomProperties = @" <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Property xsi:type="StringProperty" Name="UseSharedImageGallery" Value="true" /> <Property xsi:type="StringProperty" Name="ResourceGroups" Value="rg" /> <Property xsi:type="StringProperty" Name="ImageGallery" Value="gallery" /> </CustomProperties> "@

Add-ProvImageDefinitionConnection -ImageDefinitionName image1 -HypervisorConnectionName Azure28 -CustomProperties $ImageDefinitionCustomProperties 

$imageVersion = New-ProvImageVersion -ImageDefinitionName image1 -Description "version 1" 

-  $SourceImageVersionSpec = Add-ProvImageVersionSpec -ImageVersionUid $imageVersion.ImageVersionUid ` -HostingUnitUid $hostingunit.HostingUnitUid ` -MasterImagePath "XDHyp:\HostingUnits\azure28\image.folder\abc.resourcegroup\def-snapshot.snapshot" 

-  $ImageVersionSpecCustomProperties = @' 

-  <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

-  <Property xsi:type="StringProperty" Name="PreparedImageStorageType" Value="Premium_LRS" /> 

-  <Property xsi:type="StringProperty" Name="LicenseType" Value="Windows_Client" /> 

-  </CustomProperties> 

'@ 

New-ProvImageVersionSpec -NetworkMapping @{"0" = "XDHyp:\HostingUnits\azure28\virtualprivatecloud.folder\East US.region\virtualprivatecloud.folder\studio-mcs-infrastructure.resourcegroup\studio-mcs-vnet-eastus.virtualprivatecloud\mcs-dev.network" } -CustomProperties $ImageVersionSpecCustomProperties -ServiceOffering "XDHyp:\HostingUnits\azure28\serviceoffering.folder\Standard_B2s.serviceoffering" -SourceImageVersionSpecUid $SourceImageVersionSpec.ImageVersionSpecUid 

$TargetCustomProperties = @' 

<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

<Property xsi:type="StringProperty" Name="PreparedImageStorageType" Value="Standard_ZRS" /> 

</CustomProperties> 

'@ 

Add-ProvImageVersionSpecHostingUnit -ImageVersionSpecUid xxxxxxx -HostingUnitName AzureWest –TargetCustomProperties $TargetCustomProperties 

$PreparedImageVersionSpec = Get-ProvImageVersionSpec -ImageVersionUid $imageVersion.ImageVersionUid | Where SourceImageVersionSpecUid-eq $SourceImageVersionSpec.ImageVersionSpecUid

<!--NeedCopy-->

Note:

  • All image version specs in an image definition must belong to the same hosting unit.
  • An image version can have only one master image version spec and one prepared image version spec.
  • All image version specs must either have a machine profile or none of the image version specs must have a machine profile.

Create a catalog using a prepared image version spec

Create an MCS machine catalog from the prepared image version spec using the New-ProvScheme command. For example,


New-ProvScheme -ProvisioningSchemeName <string> -ImageVersionSpecUid <Guid> -HostingUnitUid <Guid> -IdentityPoolUid <Guid> [-VMCpuCount <int>] [-VMMemoryMB <int>] [-UseWriteBackCache] [-NetworkMapping <Hashtable>] [-CleanOnBoot] [-Scope <string[]>] [-Metadata <Hashtable>] [-ServiceOffering <string>] [-SecurityGroup <string[]>] [-TenancyType <string>] [-MachineProfile <string>] [-CustomProperties <string>] [-ResetAdministratorPasswords] [-UseFullDiskCloneProvisioning] [-RunAsynchronously] [-PurgeJobOnSuccess] [-ProvisioningSchemeType <ProvisioningSchemeType>]
[-ImageAssignmentNote <string>]

<!--NeedCopy-->

Or,


-  New-ProvScheme -ProvisioningSchemeName <string> -ImageVersionSpecUid <Guid> -HostingUnitName <string> -IdentityPoolName <string> [-VMCpuCount <int>] [-VMMemoryMB <int>] [-UseWriteBackCache] [-NetworkMapping <Hashtable>] [-CleanOnBoot] [-Scope <string[]>] [-Metadata <Hashtable>] [-ServiceOffering <string>] [-SecurityGroup <string[]>] [-TenancyType <string>] [-MachineProfile <string>] [-CustomProperties <string>] [-ResetAdministratorPasswords] [-UseFullDiskCloneProvisioning] [-RunAsynchronously] [-PurgeJobOnSuccess] [-ProvisioningSchemeType <ProvisioningSchemeType>]
[-ImageAssignmentNote <string>]

<!--NeedCopy-->

If you want to use an ACG image version spec, then set UseSharedImageGallery as true. For example,


$provSchemeCustomProperties= @"
<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">  
    <Property xsi:type="StringProperty" Name="UseSharedImageGallery" Value="true" />
    <Property xsi:type="StringProperty" Name="StorageAccountType" Value="StandardSSD_LRS" />
</CustomProperties>
"@
New-ProvScheme -ProvisioningSchemeName assignimage -ImageVersionSpecUid $PreparedImageVersionSpec.ImageVersionSpecUid `
    -HostingUnitUid $hostingunit.HostingUnitUid `
    -IdentityPoolUid $IdentityPool.IdentityPoolUid `
    -CleanOnBoot -Scope @() -SecurityGroup @() `
    -ServiceOffering "XDHyp:\HostingUnits\azure28\serviceoffering.folder\Standard_B2s.serviceoffering" `
    -NetworkMapping @{"0"="XDHyp:\HostingUnits\azure28\virtualprivatecloud.folder\East US.region\virtualprivatecloud.folder\studio-mcs-infrastructure.resourcegroup\studio-mcs-vnet-eastus.virtualprivatecloud\mcs-dev.network"} `
    -CustomProperties $provSchemeCustomProperties

<!--NeedCopy-->

Example of the complete set of Powershell commands to create a catalog:


$Catalog = New-BrokerCatalog  -AllocationType "Random"  -IsRemotePC $False  -MinimumFunctionalLevel "L7_20" -Name "azurecatalog" -PersistUserChanges "Discard" -ProvisioningType "MCS" -Scope @() -SessionSupport "MultiSession"

$IdentityPool = New-AcctIdentityPool  -AllowUnicode  -Domain "azure.local" -IdentityPoolName "azurecatalog" -IdentityType "ActiveDirectory"  -NamingScheme "azure##" -NamingSchemeType "Numeric" -Scope @()

$PreparedImageVersionSpec = Get-ProvImageVersionSpec -ImageDefinitionName image1 -ImageVersionNumber 1 -Filter "PreparationType -eq 'Mcs'"

$Task = New-ProvScheme -ProvisioningSchemeName azurecatalog -ImageVersionSpecUid $PreparedImageVersionSpec.ImageVersionSpecUid -HostingUnitName azure -IdentityPoolName azurecatalog -CleanOnBoot -Scope @() -SecurityGroup @() -ServiceOffering "XDHyp:\HostingUnits\azure\serviceoffering.folder\Standard_B2s.serviceoffering" -NetworkMapping @{"0"="XDHyp:\HostingUnits\azure\virtualprivatecloud.folder\azureresourcegroup.resourcegroup\azure-vnet-eastus.virtualprivatecloud\dev.network"} -CustomProperties "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`">    <Property xsi:type="StringProperty" Name="UseSharedImageGallery" Value="true" /><Property xsi:type=`"StringProperty`" Name=`"StorageAccountType`" Value=`"StandardSSD_LRS`" /></CustomProperties>" -RunAsynchronously

Get-ProvTask -TaskId $Task.TaskId
$ProvScheme = Get-ProvScheme -ProvisioningSchemeName azurecatalog

Set-BrokerCatalog -Name $Catalog.Name -ProvisioningSchemeId $ProvScheme.ProvisioningSchemeUid

<!--NeedCopy-->

Create Microsoft Entra joined and Microsoft Intune enrolled catalogs with prepared images

You can now use prepared images to create Microsoft Entra joined and Microsoft Intune enrolled catalogs. This feature is applicable to single and multi-session persistent and non-persistent type MCS catalogs. This implementation significantly reduces the storage and time costs, and simplifies the VM deployment and image update process.

Examples

  • To create a Microsoft Entra catalog using a prepared image.

    
     New-ProvScheme -ProvisioningSchemeName <name> -ImageVersionSpecUid <preparedVersionSpecUid> -HostingUnitUid <hostingUnitUid> -IdentityPoolUid <IdentityPoolUid> [-CleanOnBoot] -NetworkMapping @{"0"="XDHyp:\HostingUnits\<hostingunitName>\<region>.region\virtualprivatecloud.folder\<resourcegroupName>.resourcegroup\<vnetName>.virtualprivatecloud\<sunNetName>.network"} -ServiceOffering <serviceofferingPath> [-MachineProfile <machineProfilePath>] [-CustomProperties <>]
    
     <!--NeedCopy-->
    
  • To create a Microsoft Entra catalog enrolled in Microsoft Intune using a prepared image:

    
     New-ProvScheme -ProvisioningSchemeName <name> -ImageVersionSpecUid <preparedVersionSpecUid> -HostingUnitUid <hostingUnitUid> -IdentityPoolUid <IdentityPoolUid> [-CleanOnBoot] -NetworkMapping @{"0"="XDHyp:\HostingUnits\<hostingunitName>\<region>.region\virtualprivatecloud.folder\<resourcegroupName>.resourcegroup\<vnetName>.virtualprivatecloud\<sunNetName>.network"} -ServiceOffering <serviceofferingPath> [-MachineProfile <machineProfilePath>] [-CustomProperties <>]
    
      <!--NeedCopy-->
    

Share prepared images across Azure subscriptions or tenants

To share a prepared image across subscriptions or tenants on the Azure platform, follow this example:

  • Service principal: SPN 1
  • Subscription: Subscription 1
  • Tenant: Tenant 1

You want to share this image with:

  • Service principal: SPN 2
  • Subscription: Subscription 2
  • Tenant: Tenant 2 (can be the same as Tenant 1)

To successfully share and use the image, you must grant SPN 2 the following permissions in Subscription 1—at the gallery, resource group, or subscription scope:

  • Microsoft.Resources/subscriptions/read
  • Microsoft.Compute/galleries/images/read
  • Microsoft.Compute/galleries/images/versions/read

    Note:

    Any service principal that has any permission on a subscription or resource automatically inherits the Microsoft.Resources/subscriptions/read permission.

Alternatively, assign the Compute Gallery Image Reader built-in role to SPN 2.

For step-by-step guidance, see this Microsoft article.

Share encrypted prepared image across regions, subscriptions, and tenants

Azure Compute Gallery (ACG) images can be encrypted with a Disk Encryption Set (DES). With ACG sharing feature, you can share an encrypted prepared image across regions, subscriptions and tenants for Azure. The target resource needs to pick a DES in its region from the subscription where the prepared image belongs. You can thereafter create a machine catalog in the resource where the encrypted prepared image is shared.

The key steps to share an encrypted prepared image are:

  1. Create Disk Encryption Set (DES) in each region: See the microsoft documentation Use the Azure portal to enable server-side encryption with customer-managed keys for managed disks.
  2. Create an image definition for the Azure host connection and image versions in Azure Compute Gallery (ACG) and specify the DES to encrypt the prepared image : See Create an image definition and initial image version.
  3. Share the encrypted prepared image across regions, subscriptions, and tenants: You can use Studio or PowerShell commands.

You can now create a machine catalog in the resource where the encrypted prepared image is shared. For more information on creating the catalog, see Create a prepared image machine catalog in Azure.

Note:

  • If the primary region is not encrypted, the shared regions also cannot have DES.
  • If two host units target the same region, they have the same DES.

Share the encrypted image across regions, subscriptions, and tenants using Studio

  1. Right-click an image version and select Manage Image Share. The resources with region and disk encryption set are listed.
  2. Select the resources that you want to share with the image version. The resources where the image version is created from is disabled for any actions. Select a DES from the drop-down menu if DES is not configured for a resource.

    Note:

    Resources within the same region must use the same encryption key.

    Resources that you want to share with the image version

  3. Click Save.
  4. Click the Resources tab for more details about the sharing status.

    Note:

    • When the status of the image version sharing is in progress, the option to Delete Image Version or Manage Image Share is disabled.
    • When a resource is successfully shared, the DES is not editable.

Share the encrypted image across regions, subscriptions, and tenants using PowerShell

Use the command Add-ProvImageVersionSpecHostingUnit and add the parameter CustomProperties. In CustomProperties, configure the DES for the target resource. When sharing the prepared encrypted image, each resource picks a DES in its region from the subscription which the prepared image belongs to. For example,


$CustomProperties = "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`">" 
 "<Property xsi:type=`"StringProperty`" Name=`"DiskEncryptionSetId`" Value=`"/subscriptions/xxxxxx-7152-46c4-b061-xxxxxx70c/resourceGroups/resourcegroup1/providers/Microsoft.Compute/diskEncryptionSets/desid1`" />"+
 "</CustomProperties>"
Add-ProvImageVersionSpecHostingUnit -ImageVersionSpecUid <Guid> -HostingUnitUid <Guid> -CustomProperties $CustomProperties

<!--NeedCopy-->

More information

Where to go next

Kataloge mit vorbereiteten Images in Azure erstellen