# CVAMT – Citrix Virtual Apps Migration Tool

- Link: https://www.silviobalduzzi.com/2020/04/cvamt-citrix-virtual-apps-migration-tool/
- Published: 2020-04-20T11:51:16+02:00
- Author: balduz84

In qualità di consulente Citrix, mi capita spesso di lavorare a migrazioni di farm
Citrix e di conseguenza ho spesso necessità di automatizzare la copia delle applicazioni
pubblicate nella vecchia infrastruttura verso la nuova.

Ho per cui sviluppato in Powershell un tool che semplifica la migrazione delle applicazioni
pubblicate, permettendo di definire granularmente cosa migrare e in quali Delivery
Group di destinazione creare le pubblicazioni.

Il tool è stato sviluppato partendo da script Powershell condivisi dalla Community
ed è di conseguenza libero per chiunque vorrà usarlo.

![](https://i0.wp.com/www.silviobalduzzi.com/wp-content/uploads/2020/04/image-10.
png?resize=679%2C538&ssl=1)

Configurazione iniziale del tool

Il tool si basa sull’utilizzo dei comandi Powershell nativi esposti da Citrix tramite
l’utilizzo del SDK. Se il tool viene eseguito su una VM che ha già presente l’SDK,
viene visualizzata la voce “Citrix Snapin loaded”; altrimenti il programma presenta
un bottone da cui scaricare il pacchetto SDK necessario. Il tool deve essere eseguito
da un utente che abbia permessi di accesso alle farm.

![](https://i0.wp.com/www.silviobalduzzi.com/wp-content/uploads/2020/04/image-12.
png?resize=680%2C537&ssl=1)

Esportazione da farm di origine

Nella sezione “Export from Farm 1”, inserendo l’hostname o l’IP di un controller,
è possibile esportare le applicazioni presenti sia in Delivery Groups che in Application
Groups.

![](https://i0.wp.com/www.silviobalduzzi.com/wp-content/uploads/2020/04/image-13.
png?resize=680%2C538&ssl=1)

Importazione in farm di destinazione (On-Prem)

Spostandosi nella sezione “Import in Farm 2”, cliccando sul tasto “Load” vengono
caricate tutte le esportazioni eseguite in precedenza (presenti nella cartella temporanea
configurata nella prima tab). E’ possibile selezionare singolarmente le applicazioni
che si vogliono importare o cliccare su “Select All” per selezionare tutte le applicazioni
disponibili nel Delivery/Application Group selezionato.

Inserire l’host name o l’IP di un controller della farm di destinazione, connettersi,
selezionare un Delivery Group di destinazione e importare le applicazioni selezionate
in precedenza.

![](https://i0.wp.com/www.silviobalduzzi.com/wp-content/uploads/2020/04/image-9.
png?resize=680%2C537&ssl=1)

Importazione in Citrix Cloud

Le stesse attività eseguibili per l’importazione in una farm on-prem sono identicamente
disponibili anche verso il Citrix Cloud. Diversamente dall’autenticazione on-prem,
verso il Citrix Cloud è necessario autenticarsi tramite il caricamento di un file
secureclient.csv (generato dal portale citrix.cloud.com) e dal CustomerId del tenant
Cloud in uso.

Uno dei problemi che ho riscontrato durante l’utilizzo del Citrix Cloud è l’impossibilità
di caricare file .ico desiderati in fase di pubblicazione di applicazioni custom(
non recuperate automaticamente dallo start menu di una macchina esistente).

Volendo pubblicare una nuova applicazione, non presente nello start menu, si avrebbero
a disposizione esclusivamente queste icone:

![](https://i0.wp.com/www.silviobalduzzi.com/wp-content/uploads/2020/04/image-20.
png?resize=760%2C556&ssl=1)

Citrix Cloud change Application icon

Come potete vedere, rispetto al Citrix Studio on-prem, non è possibile selezionare
altre icone rispetto alle 9 disponibili. L’unica opzione possibile è cambiare l’icona
tramite comandi Powershell.
In CVAMT ho per cui aggiunto la possibilità di selezionare
applicazioni pubblicate precedentemente in Citrix Cloud e sostituirne l’icona presente.
Così facendo è possibile pubblicare applicazioni con le icone desiderate.

![](https://i0.wp.com/www.silviobalduzzi.com/wp-content/uploads/2020/04/image-15.
png?resize=680%2C542&ssl=1)

Caricamento icona personalizzata

In caso in cui la farm sorgente e destinazione non siano raggiungibili dalla stessa
VM in uso, è sufficiente copiare il contenuto della cartella temporanea (dove sono
state eseguite le esportazioni), in una cartella temporanea su un’altra VM da cui
eseguire l’importazione. Resta chiaro che se i domini AD dovessero essere diversi,
non sarebbe garantita l’importazione degli eventuali utenti/gruppi abilitati alle
applicazioni.

**Aggiornamento del 22/05/2020:**
Ho notato che il tool, se eseguito direttamente
su un Delivery Controller, si freeza in diverse occasioni. Le chiamate powershell
sono state scritte per essere eseguite su una VM con a bordo il bacchetto CitrixPoshSdk:
[https://download.apps.cloud.com/CitrixPoshSdk.exe](https://download.apps.cloud.com/CitrixPoshSdk.exe)
Tale pacchetto è diverso dal SDK che viene installato di default insieme a Citrix
Studio e potrebbe per cui essere il motivo dei freeze. Approfondirò la questione
nei prossimi giorni.

> **Le funzionalità di questo tool sono da considerare non garantite. Non sarò responsabile
> di malfunzionamenti e/o problemi derivanti dall’uso del suddetto tool. Consiglio
> di verificare manualmente le risorse migrate, al termine dell’attività di migrazione
> delle stesse.**

Di seguito il link al repository per il Download:

[CVAMT](https://bizmatica.cloud.com/#/d/s433d43d5d5394b5782b278133a379407)

## Changelog

1.0.0.20

 * 20 Aprile 2020AddPrima pubblicazione
 * 20 Aprile 2020Updateimportazione nel Citrix Cloud non totalmente implementata

1.0.0.25

 * 21 Aprile 2020AddImplementazione importazione in Citrix Cloud terminata;
 * 21 Aprile 2020Updaterisoluzione freeze GUI e ottimizzazioni varie;

1.0.0.26

 * 22 Aprile 2020AddFreeze GUI in fase di importazione in Citrix Cloud risolto; 
   ottimizzazione GUI.

1.0.1.2

 * 24 Aprile 2020AddAggiunta funzionalità di cambio icona in Citrix Cloud
