Citrix Virtual Apps and Desktops

Gestire un catalogo di Microsoft Azure

In Gestire i cataloghi delle macchine sono descritte le procedure guidate per la gestione di un catalogo di macchine. Le seguenti informazioni riguardano i dettagli specifici degli ambienti cloud di Microsoft Azure Resource Manager.

Nota:

Prima di gestire un catalogo di Microsoft Azure, è necessario completare la creazione di un catalogo di Microsoft Azure. Vedere Creare un catalogo di Microsoft Azure.

Convertire un catalogo di macchine non basato su profili macchina in un catalogo di macchine basato su profili macchina

È possibile utilizzare una VM o una specifica modello come input del profilo macchina per convertire un catalogo di macchine non basate su profili macchina in un catalogo di macchine basate su profilo macchina. Le VM esistenti e le nuove VM aggiunte al catalogo prendono i valori delle proprietà dal profilo della macchina, a meno che non vengano sovrascritti da proprietà personalizzate esplicite.

Nota:

Non è possibile modificare un catalogo macchine basato su profili macchina esistente per farlo diventare non basato su profili macchina.

A questo scopo:

  1. Creare un catalogo di macchine persistente o non persistente con macchine virtuali e senza un profilo macchina.
  2. Aprire la finestra di PowerShell.
  3. Eseguire il comando Set-ProvScheme per applicare i valori delle proprietà tratti dal profilo della macchina alle nuove VM aggiunte al catalogo macchine. Ad esempio:

    Set-ProvScheme = Set-ProvScheme -ProvisioningSchemeName xxxx -MachineProfile XDHyp:\HostingUnits<HostingUnitName>\machineprofile.folder<ResourceGroupName><TemplateSpecName><VersionName>
    <!--NeedCopy-->
    
  4. Esegui il Set-ProvVMUpdateTimeWindow comando per applicare i valori delle proprietà dal profilo macchina alle macchine virtuali esistenti del catalogo macchine. Ad esempio:

    Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName xxxx -VMName <List-Of-Vm-Names> -StartsNow -DurationInMinutes -1
    <!--NeedCopy-->
    
  5. Riavviare le macchine virtuali esistenti per ottenere i valori delle proprietà dal profilo macchina.

Conservare una macchina virtuale di cui è stato eseguito il provisioning durante i cicli di alimentazione

Scegliere se conservare una macchina virtuale di cui è stato eseguito il provisioning durante il ciclo di alimentazione. Utilizzare il parametro PowerShell New-ProvScheme CustomProperties. Questo parametro supporta una proprietà aggiuntiva, PersistVm, utilizzata per determinare se una macchina virtuale di cui è stato eseguito il provisioning persiste durante il ciclo di alimentazione. Impostare la proprietà PersistVm su true per fare in modo che una macchina virtuale persista quando è spenta oppure impostare la proprietà su false per assicurare che la macchina virtuale non venga preservata quando è spenta.

Nota:

La proprietà PersistVm si applica solo a uno schema di provisioning con le proprietà CleanOnBoot e UseWriteBackCache abilitato. Se la proprietà PersistVm non è specificata per le macchine virtuali non persistenti, vengono eliminate dall’ambiente Azure quando sono spente.

Nell’esempio seguente, il parametro New-ProvScheme CustomProperties imposta la proprietà PersistVmsu true:

<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Property xsi:type="StringProperty" Name="UseManagedDisks" Value="true" />
<Property xsi:type="StringProperty" Name="StorageType" Value="Standard_LRS" />
<Property xsi:type="StringProperty" Name="PersistWBC" Value="false" />
<Property xsi:type="StringProperty" Name="PersistOsDisk" Value="true" />
<Property xsi:type="StringProperty" Name="PersistVm" Value="true" />
<Property xsi:type="StringProperty" Name="ResourceGroups" Value="demo-resourcegroup" />
<Property xsi:type="StringProperty" Name="LicenseType" Value="Windows_Client" />
</CustomProperties>
<!--NeedCopy-->

Nell’esempio seguente, il parametro New-ProvScheme CustomProperties conserva la cache di write-back impostando PersistVM su true:

 New-ProvScheme
 -AzureAdJoinType "None"
 -CleanOnBoot
 -CustomProperties "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`"><Property xsi:type=`"StringProperty`" Name=`"UseManagedDisks`" Value=`"true`" /><Property xsi:type=`"StringProperty`" Name=`"StorageType`" Value=`"Standard_LRS`" /><Property xsi:type=`"StringProperty`" Name=`"PersistWBC`" Value=`"false`" /><Property xsi:type=`"StringProperty`" Name=`"PersistOsDisk`" Value=`"true`" /><Property xsi:type=`"StringProperty`" Name=`"PersistVm`" Value=`"true`" /><Property xsi:type=`"StringProperty`" Name=`"ResourceGroups`" Value=`"demo-resourcegroup`" /><Property xsi:type=`"StringProperty`" Name=`"LicenseType`" Value=`"Windows_Client`" /></CustomProperties>"
 -HostingUnitName "demo"
 -IdentityPoolName "NonPersistent-MCSIO-PersistVM"
 -MasterImageVM "XDHyp:\HostingUnits\demo\image.folder\scale-test.resourcegroup\demo-snapshot.snapshot"
 -NetworkMapping @ {"0"="XDHyp:\HostingUnits\demo\virtualprivatecloud.folder\East US.region\virtualprivatecloud.folder\ji-test.resourcegroup\jitest-vnet.virtualprivatecloud\default.network"}
-ProvisioningSchemeName "NonPersistent-MCSIO-PersistVM"
 -ServiceOffering "XDHyp:\HostingUnits\demo\serviceoffering.folder\Standard_B2ms.serviceoffering" -UseWriteBackCache
 -WriteBackCacheDiskSize 127
 -WriteBackCacheMemorySize 256
 <!--NeedCopy-->

Suggerimento:

La proprietà PersistVm determina se conservare una macchina virtuale di cui è stato eseguito il provisioning. La proprietà PersistOsdisk determina se mantenere il disco del sistema operativo. Per preservare una macchina virtuale di cui è stato eseguito il provisioning, conservare innanzitutto il disco del sistema operativo. Non eliminare il disco del sistema operativo senza prima eliminare la macchina virtuale. È possibile utilizzare la proprietà PersistOsdisk senza specificare il parametroPersistVm.

Portare il tipo di archiviazione a un livello inferiore quando una VM viene arrestata

È possibile risparmiare sui costi di archiviazione cambiando il tipo di archiviazione di un disco gestito portandolo a un livello inferiore quando si spegne una VM. Per fare ciò, utilizzare la proprietà personalizzata StorageTypeAtShutdown.

Il tipo di archiviazione del disco passa a un livello inferiore (come specificato nella proprietà personalizzata StorageTypeAtShutdown) quando si arresta la macchina virtuale. Dopo aver acceso la VM, il tipo di archiviazione torna all’originale (come specificato nella proprietà personalizzata StorageType o nella proprietà personalizzata WBCDiskStorageType).

Importante:

Il disco non esiste finché la VM non viene accesa almeno una volta. Pertanto, non è possibile modificare il tipo di archiviazione quando si accende la VM per la prima volta.

Requisiti:

  • Applicabile a un disco gestito. Ciò implica impostare la proprietà personalizzata UseManagedDisks su true.
  • Applicabile a un catalogo persistente e non persistente con un disco del sistema operativo persistente. Ciò implica impostare la proprietà personalizzata persistOsDisk su true.
  • Applicabile a un catalogo non persistente con un disco WBC persistente. Ciò implica impostare la proprietà personalizzata persistWBC su true.

Per cambiare il tipo di archiviazione portandolo a un livello inferiore:

  1. Aggiungere la proprietà personalizzata StorageTypeAtShutdown, impostare il valore su Standard_LRS (HDD) e creare un catalogo utilizzando New-ProvScheme. Per informazioni sulla creazione di un catalogo utilizzando PowerShell, vedere https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/creating-a-catalog/.

    Nota:

    Se StorageTypeAtShutdown ha un valore diverso da vuoto o Standard_LRS (HDD), l’operazione ha esito negativo.

    Esempio di impostazione di proprietà personalizzate durante la creazione di un catalogo persistente:

    $customProperties='<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Property xsi:type="StringProperty" Name="UseManagedDisks" Value="true" />
    <Property xsi:type="StringProperty" Name="StorageType" Value="Premium_LRS" />
    <Property xsi:type="StringProperty" Name="ResourceGroups" Value="" />
    <Property xsi:type="StringProperty" Name="LicenseType" Value="Windows_Client" />
    <Property xsi:type="StringProperty" Name="SchemaVersion" Value="2" />
    <Property xsi:type="StringProperty" Name="OsType" Value="Windows" />
    <Property xsi:type="StringProperty" Name="StorageTypeAtShutdown" Value="Standard_LRS" />
    </CustomProperties>'
    <!--NeedCopy-->
    

    Esempio di impostazione di proprietà personalizzate durante la creazione di un catalogo non persistente:

    $customProperties='<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Property xsi:type="StringProperty" Name="UseManagedDisks" Value="true" />
    <Property xsi:type="StringProperty" Name="StorageType" Value="Premium_LRS" />
    <Property xsi:type="StringProperty" Name="WbcDiskStorageType" Value="Standard_SSD_LRS" />
    <Property xsi:type="StringProperty" Name="ResourceGroups" Value="" />
    <Property xsi:type="StringProperty" Name="LicenseType" Value="Windows_Client" />
    <Property xsi:type="StringProperty" Name="SchemaVersion" Value="2" />
    <Property xsi:type="StringProperty" Name="OsType" Value="Windows" />
    <Property xsi:type="BooleanProperty" Name="persistWBC" Value=true />
    <Property xsi:type="BooleanProperty" Name="persistOsDisk" Value=true />
    <Property xsi:type="StringProperty" Name="StorageTypeAtShutdown" Value="Standard_LRS" />
    </CustomProperties>'
    <!--NeedCopy-->
    

    Nota:

    Quando si utilizza un profilo macchina, la proprietà personalizzata ha la precedenza sulla proprietà definita in MachineProfile.

  2. Arrestare la macchina virtuale e controllare il tipo di archiviazione della macchina virtuale nel portale di Azure. Il tipo di archiviazione del disco passa a un livello inferiore, come specificato nella proprietà personalizzata StorageTypeAtShutdown.
  3. Accendere la VM. Il tipo di archiviazione del disco torna al tipo di archiviazione indicato in:
    • Proprietà personalizzata StorageType per il disco del sistema operativo
    • Proprietà personalizzata WBCDiskStorageType per il disco WBC solo se specificata in CustomProperties. Altrimenti, torna al tipo di archiviazione indicato in StorageType.

Per applicare StorageTypeAtShutdown a un catalogo esistente:

Utilizzare Set-ProvScheme per aggiungere una macchina virtuale a un catalogo esistente. La funzionalità si applica alle nuove VM aggiunte dopo l’esecuzione di Set-ProvScheme. Le macchine esistenti non sono interessate.

Esempio di impostazione di proprietà personalizzate durante l’aggiunta di una macchina virtuale a un catalogo esistente:

$customProperties='<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Property xsi:type="StringProperty" Name="UseManagedDisks" Value="true" />
<Property xsi:type="StringProperty" Name="StorageType" Value="Premium_LRS" />
<Property xsi:type="StringProperty" Name="WbcDiskStorageType" Value="Standard_SSD_LRS" />
<Property xsi:type="StringProperty" Name="ResourceGroups" Value="" />
<Property xsi:type="StringProperty" Name="LicenseType" Value="Windows_Client" />
<Property xsi:type="StringProperty" Name="SchemaVersion" Value="2" />
<Property xsi:type="StringProperty" Name="OsType" Value="Windows" />
<Property xsi:type="BooleanProperty" Name="persistWBC" Value=true />
<Property xsi:type="BooleanProperty" Name="persistOsDisk" Value=true />
<Property xsi:type="StringProperty" Name="StorageTypeAtShutdown" Value="Standard_LRS" />
</CustomProperties>'

$ProvScheme = Get-Provscheme -ProvisioningSchemeName $CatalogName

Set-ProvScheme -ProvisioningSchemeName $ProvScheme.ProvisioningSchemeName -CustomProperties $customProperties
<!--NeedCopy-->

Cambiare il tipo di archiviazione delle VM esistenti a un livello inferiore al momento dell’arresto

È possibile risparmiare sui costi di archiviazione modificando il tipo di archiviazione delle macchine virtuali esistenti su un livello inferiore quando le macchine virtuali vengono arrestate. Per fare ciò, utilizzare la proprietà personalizzata StorageTypeAtShutdown.

Per modificare il tipo di archiviazione delle macchine esistenti in un catalogo portandolo a un livello inferiore quando le macchine virtuali vengono spente:

  1. Aprire una finestra di PowerShell.
  2. Eseguire il comando asnp citrix* per caricare i moduli PowerShell specifici di Citrix.
  3. Eseguire Get-Provscheme -ProvisioningSchemeName $CatalogName.
  4. Modificare la stringa delle proprietà personalizzate.

    $customProperties = '<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Property xsi:type="StringProperty" Name="StorageTypeAtShutdown" Value="Standard_LRS" />
    </CustomProperties>'
    <!--NeedCopy-->
    
  5. Aggiornare lo schema di provisioning del catalogo esistente. L’aggiornamento si applica alle nuove VM aggiunte dopo l’esecuzione di Set-ProvScheme.

    Set-ProvScheme -ProvisioningSchemeName $CatalogName -CustomProperties $customProperties
    <!--NeedCopy-->
    
  6. Aggiornare le VM esistenti per abilitarle StorageTypeAtShutdown.

    Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName $CatalogName -StartsNow -DurationInMinutes -1
    <!--NeedCopy-->
    
  7. Alla successiva accensione delle macchine, la proprietà StorageTypeAtShutdown delle macchine viene aggiornata. Il tipo di archiviazione cambia al successivo arresto.
  8. Eseguire il comando seguente per visualizzare il valore StorageTypeAtShutdown di ciascuna macchina virtuale di un catalogo:

    Get-ProvVM -ProvisioningSchemeName <catalog-name> | foreach { $vmName = $\_.VMName; $storageTypeAtShutdown = ($\_.CustomVmData | ConvertFrom-Json).StorageTypeAtShutdown.DiskStorageAccountType; return New-Object psobject -Property @{ "VMName" = $vmName; "StorageTypeAtShutdown" = $storageTypeAtShutdown } }
    <!--NeedCopy-->
    

Personalizzare il comportamento di accensione in caso di mancata riuscita della modifica del tipo di archiviazione

All’accensione, il tipo di archiviazione di un disco gestito potrebbe non riuscire a passare al tipo desiderato a causa di un errore in Azure. In questi scenari, la VM rimarrebbe disattivata e si riceverebbe un messaggio di errore. Tuttavia, è possibile scegliere di accendere la VM anche quando non può essere ripristinato il tipo di archiviazione configurato oppure scegliere di mantenere spenta la VM.

  • Se si configura la proprietà personalizzata FailSafeStorageType come true (impostazione predefinita) o non la si specifica nei comandi New-ProvScheme o Set-ProvScheme:

    • All’accensione, la VM si accende con il tipo di archiviazione errato.
    • All’arresto, la VM rimane spenta con il tipo di archiviazione errato.
  • Se si configura la proprietà personalizzata FailSafeStorageType come false nei comandi New-ProvScheme o Set-ProvScheme:

    • All’accensione, la VM rimane spenta con un tipo di archiviazione errato.
    • All’arresto, la VM rimane spenta con un tipo di archiviazione errato.

Per creare un catalogo di macchine:

  1. Aprire una finestra di PowerShell.
  2. Eseguire il comando asnp citrix* per caricare i moduli PowerShell specifici di Citrix.
  3. Creare un pool di identità se non è già stato creato.
  4. Aggiungere la proprietà personalizzata in New-ProvScheme. Ad esempio:

    New-ProvScheme -HostingUnitName "Azure-Resources-1" -IdentityPoolName "name" -InitialBatchSizeHint 1
    -MasterImageVM "XDHyp:\HostingUnits\Azure-Resources-1\image.folder\abc.resourcegroup\def.snapshot"
    -NetworkMapping @{"0"="XDHyp:\HostingUnits\Azure-Resources-1\ght.folder\abc.resourcegroup\abc-vnet.virtualprivatecloud\default.network"}
    -ProvisioningSchemeName "name"
    -ServiceOffering "XDHyp:\HostingUnits\Azure-Resources-1\serviceoffering.folder\Standard_DS2_v2.serviceoffering"
    -CustomProperties "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`">
    <Property xsi:type=`"StringProperty`" Name=`"StorageType`" Value=`"Premium_LRS`" />
    <Property xsi:type=`"StringProperty`" Name=`"StorageTypeAtShutdown`" Value=`"Standard_LRS`" />
    <Property xsi:type=`"StringProperty`" Name=`"FailSafeStorageType`" Value=`"true`" />
    </CustomProperties>"
    <!--NeedCopy-->
    
  5. Creare il catalogo di macchine. Per informazioni su come creare un catalogo utilizzando l’SDK Remote PowerShell, vedere https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/creating-a-catalog/.

Per aggiornare un catalogo di macchine esistente in modo da includere la proprietà personalizzata FailSafeStorageType. Questo aggiornamento non influisce sulle macchine virtuali esistenti.

  1. Aggiornare la proprietà personalizzata nel comando Set-ProvScheme. Ad esempio:
   Set-ProvScheme -ProvisioningSchemeName <String> -CustomProperties "
   <CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`">
   <Property xsi:type=`"StringProperty`" Name=`"StorageType`" Value=`"Premium_LRS`" />
   <Property xsi:type=`"StringProperty`" Name=`"IdentityDiskStorageType`" Value=`"Premium_LRS`" />
   <Property xsi:type=`"StringProperty`" Name=`"FailSafeStorageType`" Value=`"false`" />
   </CustomProperties>"
   <!--NeedCopy-->

Per applicare la modifica effettuata in Set-ProvScheme alle macchine virtuali esistenti, eseguire il comando Set-ProvVMUpdateTimeWindow con i parametri -StartsNow e -DurationInMinutes -1.

  1. Eseguire il comando Set-ProvVMUpdateTimeWindow con i parametri -StartsNow e -DurationInMinutes -1. Ad esempio:

    Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName my-catalog -VMName <List-Of-Vm-Names> -StartsNow -DurationInMinutes -1
    <!--NeedCopy-->
    
  2. Riavviare le macchine virtuali.

Aggiornare le macchine di cui è stato eseguito il provisioning allo stato corrente dello schema di provisioning

Il comando Set-ProvScheme modifica lo schema di provisioning. Tuttavia, non influisce sulle macchine esistenti. Utilizzando il comando Set-ProvVMUpdateTimeWindow di PowerShell, è possibile applicare lo schema di provisioning corrente a una macchina o a un set di macchine esistente persistente o non persistente. È inoltre possibile pianificare una fascia oraria per gli aggiornamenti della configurazione dei computer esistenti forniti da MCS. Eventuali accensioni o riavvii durante la fascia oraria pianificata applicano un aggiornamento pianificato dello schema di provisioning a una macchina. Attualmente, in Azure, è possibile aggiornare ServiceOffering, MachineProfile e le seguenti proprietà personalizzate:

  • StorageType
  • WBCDiskStorageType
  • IdentityDiskStorageType
  • LicenseType
  • DedicatedHostGroupId
  • PersistWBC
  • PersistOsDisk
  • PersistVm

Nota:

  • È possibile aggiornare StorageType, WBCDiskStorageType e le proprietà personalizzate IdentityDiskStorageType di un catalogo solo usando il disco gestito in ambienti Azure.
  • Se si esegue Set-ProvVMUpdateTimeWindow due volte, ha effetto il comando più recente.

È possibile aggiornare:

  • Una singola macchina virtuale
  • Un elenco di macchine virtuali specifiche o di tutte le macchine virtuali esistenti associate a un ID di schema di provisioning
  • Un elenco di macchine virtuali specifiche o di tutte le macchine virtuali esistenti associate a un nome di schema di provisioning (nome del catalogo macchine)

Dopo aver apportato le seguenti modifiche allo schema di provisioning, l’istanza della macchina virtuale viene ricreata per i cataloghi persistenti in Azure:

  • Cambiare MachineProfile
  • Rimuovere LicenseType
  • Rimuovere DedicatedHostGroupId

Nota:

Il disco del sistema operativo delle macchine esistenti, insieme a tutti i relativi dati, rimane invariato e al disco viene collegata una nuova VM.

Prima di aggiornare le macchine virtuali esistenti:

  1. Verificare la configurazione delle macchine esistenti. Ad esempio,

    Get-ProvScheme | select ProvisioningSchemeName, ProvisioningSchemeVersion
    <!--NeedCopy-->
    
  2. Aggiornare lo schema di provisioning. Ad esempio,

    • Con la VM come input del profilo macchina:

       Set-ProvScheme -ProvisioningSchemeName "my-catalog" -MachineProfile "XDHyp:\HostingUnits<hosting-unit>\machineprofile.folder<resource-group>.resourcegroup<virtual-machine>.vm"
       <!--NeedCopy-->
      
    • Con le specifiche modello come input del profilo macchina:

       Set-ProvScheme -ProvisioningSchemeName "my-catalog"
       -MachineProfile "XDHyp:\HostingUnits<hosting-unit>\machineprofile.folder<resource-group>.resourcegroup<template-spec>.templatespec<template-spec-version>.templatespecversion"
       -ServiceOffering "XDHyp:\HostingUnits<hosting-unit>\serviceoffering.folder<service-offering>.serviceoffering"
       <!--NeedCopy-->
      
    • Con solo questa offerta di servizi:

       Set-ProvScheme -ProvisioningSchemeName "my-catalog" -ServiceOffering "XDHyp:\HostingUnits<hosting-unit>\serviceoffering.folder<service-offering>.serviceoffering"
       <!--NeedCopy-->
      
  3. Verifica se la proprietà corrente della VM corrisponde allo schema di provisioning corrente e se c’è qualche azione di aggiornamento in sospeso sulla VM. Ad esempio,

    Get-ProvVM | select VMName, ProvisioningSchemeUpdateRequested, ProvisioningSchemeVersion
    <!--NeedCopy-->
    

    È anche possibile trovare macchine con una versione particolare. Ad esempio,

    Get-ProvVM -Filter "ProvisioningSchemeVersion -eq 1" | select VMName, ProvisioningSchemeVersion
    <!--NeedCopy-->
    

Per richiedere gli aggiornamenti delle macchine esistenti da applicare al prossimo riavvio:

  1. Eseguire i seguenti comandi per aggiornare i computer esistenti e far applicare gli aggiornamenti al successivo riavvio.

    • Per aggiornare tutte le macchine esistenti: Ad esempio,

       Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName my-catalog -StartsNow -DurationInMinutes -1
       <!--NeedCopy-->
      
    • Per aggiornare un elenco di macchine specifiche. Ad esempio,

       Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName my-catalog -VMName <List-Of-Vm-Names> -StartsNow -DurationInMinutes -1
       <!--NeedCopy-->
      
    • Per aggiornare le macchine in base all’output di Get-ProvVM. Ad esempio,

       Get-ProvVM -ProvisioningSchemeName "my-catalog" | Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName my-catalog -StartsNow -DurationInMinutes -1
       <!--NeedCopy-->
      

    Nota:

    • StartsNow indica che l’ora di inizio pianificata è l’ora corrente.
    • DurationInMinutes con un numero negativo (ad esempio -1) indica che non vi è alcun limite superiore nella finestra oraria della pianificazione.
  2. Trovare i computer con un aggiornamento pianificato. Ad esempio,

    Get-ProvVM -Filter "ProvisioningSchemeUpdateAfter" | select VMName, ProvisioningSchemeUpdateAfter
    <!--NeedCopy-->
    
  3. Riavviare le macchine. Alla successiva accensione, le modifiche delle proprietà vengono applicate ai computer esistenti. È possibile verificare lo stato aggiornato utilizzando il comando che segue. Ad esempio,

    Get-ProvVM | select VMName, ProvisioningSchemeUpdateRequested, ProvisioningSchemeVersion
    <!--NeedCopy-->
    

Per pianificare l’aggiornamento di una VM alle impostazioni di provisioning più recenti la prossima volta che verrà avviata nella finestra temporale pianificata:

  1. Eseguire i seguenti comandi:

    • Per pianificare un aggiornamento con l’ora di inizio come ora corrente

       Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName my-catalog -VMName vm1 -StartsNow -DurationInMinutes 120
       <!--NeedCopy-->
      
    • Per programmare un aggiornamento durante un fine settimana

       Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName “ my-catalog “ -VMName “vm1” -StartTimeInUTC “10/15/2022 9:00am” -DurationInMinutes (New –TimeSpan –Days 2).TotalMinutes
       <!--NeedCopy-->
      

    Nota:

    • VMName è opzionale. Se non specificato, l’aggiornamento è pianificato per l’intero catalogo.
    • Invece di StartTimeInUTC, utilizzare StartsNow per indicare che l’ora di inizio della pianificazione è l’ora corrente.
    • DurationInMinutes è opzionale. L’impostazione predefinita è 120 minuti. Un numero negativo (ad esempio -1) non indica alcun limite superiore nella finestra oraria della pianificazione.
  2. Controllare lo stato dell’aggiornamento.

    Get-ProvVM | select VMName, ProvisioningSchemeUpdateRequested, ProvisioningSchemeUpdateUntil, ProvisioningSchemeVersion
    <!--NeedCopy-->
    
  3. Accendere la VM. Se si accende il computer dopo la fascia oraria pianificata, l’aggiornamento della configurazione non viene applicato. Se si accende la macchina entro la fascia oraria pianificata,

    • Se la macchina è spenta e

      • non si accende la macchina, l’aggiornamento della configurazione non viene applicato
      • si accende la macchina, viene applicato l’aggiornamento della configurazione
    • Se la macchina è accesa e

      • non si riavvia la macchina, l’aggiornamento della configurazione non viene applicato
      • si riavvia la macchina, viene applicato l’aggiornamento della configurazione

Per annullare l’aggiornamento della configurazione:

È anche possibile annullare un aggiornamento della configurazione di una singola macchina virtuale, di più macchine virtuali o di un intero catalogo. Per annullare un aggiornamento della configurazione:

  1. Eseguire Clear-ProvVMUpdateTimeWindow. Ad esempio:

    • Per annullare l’aggiornamento della configurazione pianificato per una singola macchina virtuale:

        Clear-ProvVMUpdateTimeWindow -ProvisioningSchemeName “ my-catalog “ -VMName “vm1”
        <!--NeedCopy-->
      
    • Per annullare l’aggiornamento della configurazione pianificato per più macchine virtuali:

       Clear-ProvVMUpdateTimeWindow -ProvisioningSchemeName "my-catalog" -VMName "vm1","vm2"
       <!--NeedCopy-->
      

      Nota:

      Le macchine virtuali devono appartenere allo stesso catalogo.

Aggiornare le proprietà delle singole macchine virtuali

È possibile aggiornare le proprietà delle singole macchine virtuali incluse in un catalogo di macchine MCS persistente utilizzando il comando PowerShell Set-ProvVM. Tuttavia, gli aggiornamenti non vengono applicati immediatamente. È necessario impostare la finestra temporale utilizzando il comando PowerShell Set-ProvVMUpdateTimeWindow per applicare gli aggiornamenti.

Questa implementazione consente di gestire le singole macchine virtuali in modo efficiente senza aggiornare l’intero catalogo di macchine. Attualmente, questa funzionalità è applicabile solo all’ambiente Azure.

Attualmente, le proprietà che è possibile aggiornare sono:

  • CustomProperties
  • ServiceOffering
  • MachineProfile

Utilizzando questa funzionalità, è possibile:

Prima di aggiornare le proprietà di una macchina virtuale:

  1. Aprire una finestra di PowerShell.
  2. Eseguire il comando asnp citrix* per caricare i moduli PowerShell specifici di Citrix.
  3. Verificare la configurazione del catalogo di macchine esistente. Ad esempio:

    Get-ProvScheme -ProvisioningSchemeName AzureCatalog
    <!--NeedCopy-->
    
  4. Verificare la configurazione della macchina virtuale a cui si desidera applicare gli aggiornamenti. Ad esempio:

    Get-ProvVM -ProvisioningSchemeName AzureCatalog -VMName machine1
    <!--NeedCopy-->
    

Aggiornare le proprietà di una macchina virtuale

Effettuare le seguenti operazioni per aggiornare le proprietà su una macchina virtuale:

  1. Disattivare la macchina virtuale a cui si intende applicare gli aggiornamenti.
  2. Aggiornare le proprietà della macchina virtuale. Ad esempio, se si desidera aggiornare la proprietà personalizzata del tipo di archiviazione (StorageType) della macchina virtuale, eseguire i comandi seguenti:

    Set-ProvVM -ProvisioningSchemeName AzureCatalog -VMName machine1 -CustomProperties "...<Property Name='StorageType' Value='Premium_LRS' />..."
    <!--NeedCopy-->
    

    È possibile aggiornare contemporaneamente le proprietà di due macchine virtuali appartenenti a un catalogo di macchine. Ad esempio:

    Set-ProvVM -ProvisioningSchemeName AzureCatalog -VMName machine1 -CustomProperties "...<Property Name='StorageType' Value='Premium_LRS' />..."
    <!--NeedCopy-->
    
    Set-ProvVM -ProvisioningSchemeName AzureCatalog -VMName machine2 -CustomProperties "...<Property Name='StorageType' Value='StandardSSD_LRS' />..."
    <!--NeedCopy-->
    

    Nota:

    Gli aggiornamenti non vengono applicati immediatamente.

  3. Ottenere l’elenco delle proprietà specificate per l’aggiornamento e la versione di configurazione. Ad esempio:

    Get-ProvVMConfiguration -ProvisioningSchemeName AzureCatalog -VMName machine1
    <!--NeedCopy-->
    

    Controllare il valore della proprietà di Version e le proprietà da aggiornare (in questo caso, StorageType).

  4. Controllare la versione della configurazione. Ad esempio:

    Get-ProvVM -ProvisioningSchemeName AzureCatalog -VMName machine1
    <!--NeedCopy-->
    

    Controllare il valore della proprietà di ProvVMConfigurationVersion. L’aggiornamento non è ancora stato applicato. La VM è ancora nella vecchia configurazione.

  5. Richiedere un aggiornamento pianificato. Ad esempio:

     Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName AzureCatalog -StartsNow -DurationInMinutes -1
     <!--NeedCopy-->
    

    Per ulteriori informazioni, vedere Aggiornare le macchine di cui è stato eseguito il provisioning allo stato corrente dello schema di provisioning.

    Nota:

    Viene inoltre applicato qualsiasi aggiornamento dello schema di provisioning in sospeso.

  6. Riavviare la macchina virtuale. Ad esempio:

    New-BrokerHostingPowerAction -MachineName machine1 -Action TurnOn
    <!--NeedCopy-->
    
  7. Controllare la versione della configurazione. Ad esempio:

    Get-ProvVM -ProvisioningSchemeName AzureCatalog -VMName machine1
    <!--NeedCopy-->
    

    Controllare il valore della proprietà di ProvVMConfigurationVersion. L’aggiornamento viene ora applicato. La VM ora ha la nuova configurazione.

  8. Per applicare ulteriori aggiornamenti della configurazione alla macchina virtuale, arrestare la macchina virtuale e ripetere i passaggi.

Conservare le proprietà aggiornate di una macchina virtuale dopo l’aggiornamento del catalogo delle macchine

Effettuare le seguenti operazioni per mantenere le proprietà aggiornate su una macchina virtuale:

  1. Disattivare la macchina virtuale a cui si intende applicare gli aggiornamenti.
  2. Aggiornare il catalogo delle macchine. Ad esempio, se si desidera modificare la dimensione della macchina virtuale (ServiceOffering) e il tipo di archiviazione (StorageType), eseguire i comandi seguenti:

    Set-ProvScheme -ProvisioningSchemeName AzureCatalog -ServiceOffering Standard_E4_v3 -CustomProperties "...<Property Name='StorageType' Value='StandardSSD_LRS' />..."
    <!--NeedCopy-->
    
  3. Ottenere i dettagli di configurazione del catalogo di macchine. Ad esempio:

    Get-ProvScheme -ProvisioningSchemeName AzureCatalog
    <!--NeedCopy-->
    

    Ora ProvisioningSchemeVersion è incrementato di uno. Vengono inoltre aggiornate le dimensioni e il tipo di archiviazione della VM.

  4. Aggiornare le proprietà della macchina virtuale. Ad esempio, fornire un profilo macchina alla macchina virtuale.

    Set-ProvVM -ProvisioningSchemeName AzureCatalog -VMName machine1 -MachineProfile "XDHyp:\HostingUnits<hosting-unit>\machineprofile.folder<resource-group>.resourcegroup<template-spec>.templatespec<template-spec-version>.templatespecversion"
    <!--NeedCopy-->
    

    Nota:

    L’input del profilo macchina ha un tag e una dimensione di VM diversa (ServiceOffering) specificata.

  5. Ottenere l’elenco delle proprietà che la macchina virtuale avrà dopo aver unito gli aggiornamenti di configurazione effettuati sulla macchina virtuale con gli aggiornamenti del catalogo delle macchine. Ad esempio:

    Get-ProvVMConfigurationResultantSet -ProvisioningSchemeName AzureCatalog -VMName machine1
    <!--NeedCopy-->
    

    Nota:

    Qualsiasi aggiornamento avvenuto sulla macchina virtuale sovrascriverà gli aggiornamenti effettuati sul catalogo delle macchine.

  6. Richiedere un aggiornamento pianificato per la macchina virtuale. Ad esempio:

    Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName AzureCatalog -VMName machine1 -StartsNow -DurationInMinutes -1
    <!--NeedCopy-->
    
  7. Riavviare la macchina virtuale. Ad esempio:

    New-BrokerHostingPowerAction -MachineName machine1 -Action TurnOn
    <!--NeedCopy-->
    

    La macchina virtuale mantiene le proprie dimensioni aggiornate derivate dal profilo macchina. I valori dei tag specificati nel profilo macchina vengono applicati anche alla macchina virtuale. Tuttavia, il tipo di archiviazione deriva dallo schema di provisioning più recente.

  8. Ottenere la versione di configurazione della VM. Ad esempio:

    Get-ProvVM -ProvisioningSchemeName AzureCatalog -VMName machine1
    <!--NeedCopy-->
    

    ProvisioningSchemeVersion e ProvVMConfigurationVersion ora mostrano la versione più recente.

Ripristinare gli aggiornamenti di configurazione applicati a una macchina virtuale

  1. Dopo aver applicato gli aggiornamenti a una macchina virtuale, arrestare la macchina virtuale.
  2. Eseguire il comando seguente per rimuovere gli aggiornamenti applicati alla macchina virtuale. Ad esempio:

    Set-ProvVM -RevertToProvSchemeConfiguration -ProvisioningSchemeName AzureCatalog -VMName machine1
    <!--NeedCopy-->
    
  3. Richiedere un aggiornamento pianificato per la macchina virtuale. Ad esempio:

    Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName AzureCatalog -VMName machine1 -StartsNow -DurationInMinutes -1
    <!--NeedCopy-->
    
  4. Riavviare la macchina virtuale. Ad esempio:

    New-BrokerHostingPowerAction -MachineName machine1 -Action TurnOn
    <!--NeedCopy-->
    
  5. Controllare la versione di configurazione della VM. Ad esempio:

    Get-ProvVM -ProvisioningSchemeName AzureCatalog -VMName machine1
    <!--NeedCopy-->
    

    Il valore ProvVMConfigurationVersion è ora la versione di configurazione del catalogo macchine.

Recuperare informazioni per le macchine virtuali di Azure, le snapshot, il disco del sistema operativo e la definizione delle immagini della raccolta

È possibile visualizzare informazioni per una macchina virtuale di Azure, inclusi il disco e il tipo del sistema operativo, la snapshot e la definizione delle immagini della raccolta. Queste informazioni vengono visualizzate per le risorse sull’immagine master quando viene assegnato un catalogo delle macchine. Utilizzare questa funzionalità per visualizzare e selezionare un’immagine Linux o Windows. Una proprietà PowerShell, TemplateIsWindowsTemplate, è stata aggiunta al parametro AdditionDatafield. Questo campo contiene informazioni specifiche di Azure: tipo di macchina virtuale, disco del sistema operativo, informazioni sulle immagini della raccolta e informazioni sul tipo di sistema operativo. L’impostazione di TemplateIsWindowsTemplate su True indica che il tipo di sistema operativo è Windows; l’impostazione di TemplateIsWindowsTemplate su False indica che il tipo di sistema operativo è Linux.

Suggerimento:

Le informazioni visualizzate dalla proprietà PowerShell TemplateIsWindowsTemplate derivano dall’API di Azure. A volte, questo campo potrebbe essere vuoto. Ad esempio, una snapshot di un disco di dati non contiene il campo TemplateIsWindowsTemplate perché il tipo di sistema operativo non può essere recuperato da una snapshot.

Ad esempio, impostare il parametro AdditionData della macchina virtuale di Azure su True per il tipo di sistema operativo Windows utilizzando PowerShell:

PS C:\Users\username> (get-item XDHyp:\HostingUnits\mynetwork\image.folder\username-dev-testing-rg.resourcegroup\username-dev-tsvda.vm).AdditionalData
Key Value
ServiceOfferingDescription Standard_B2ms
HardDiskSizeGB 127
ResourceGroupName FENGHUAJ-DEV-TESTING-RG
ServiceOfferingMemory 8192
ServiceOfferingCores 2
TemplateIsWindowsTemplate True
ServiceOfferingWithTemporaryDiskSizeInMb 16384
SupportedMachineGenerations Gen1,Gen2
<!--NeedCopy-->

Identificare le risorse create da MCS

Di seguito sono riportati i tag che MCS aggiunge alle risorse. I tag nella tabella sono rappresentati come “key”:”value”.

Nome della risorsa Tag
Disco ID “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “CitrixResource” : “Internal”
Immagine “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “CitrixResource” : “Internal”
NIC “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “CitrixResource” : “Internal”
Disco del sistema operativo “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “CitrixResource” : “Internal”
PrepVM “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “CitrixResource” : “Internal”
Snapshot pubblicata “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “CitrixResource” : “Internal”
Gruppo di risorse “CitrixResource” : “Internal”
  CitrixSchemaVersion: 2.0
  “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
Account di archiviazione “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “CitrixResource” : “Internal”
Macchina virtuale nel catalogo “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “CitrixResource” : “Internal”
Disco WBC “CitrixProvisioningSchemeId” : “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  “CitrixResource” : “Internal”

Nota:

Una macchina virtuale non è visibile nell’inventario Citrix se viene aggiunto un tag CitrixResource per identificarla come risorsa creata da MCS. È possibile rimuovere o rinominare il tag per renderlo visibile.

Ulteriori informazioni