Tra le novità inserite in Windows 10 Anniversary Update (versione 1607) c'è il client App-V, che è ormai disponibile direttamente nel sistema operativo invece che nel pacchetto MDOP (Microsoft Desktop Optimization Pack). Ma di questo avevamo già parlato nell'articolo https://www.nicolaferrini.it/ITA/blog/1021-app-v-e-ue-v-saranno-inclusi-in-windows-10-anniversary-update.html Oggi voglio mostrarvi una novità molto interessante: l'AutoSequencer. Come molti di voi sapranno, il Sequencer è il software che permette di trasformare un'applicazione reale in un'applicazione virtuale, creando un pacchetto .appv. Se disponete della versione Enterprise di Windows 10 potete seguire i passaggi descritti nell'articolo https://www.nicolaferrini.it/ita/blog/991-abilitare-microsoft-app-v-in-windows-10-enterprise.html per poter abilitare il client App-V. In alternativà è possibile usare anche una Group Policy disponibile in Computer Configuration --> Administrative Templates --> System --> App-V

.


Figura 1: Abilitazione del client di App-V tramite GPO

Figura 2: Abilitazione del client App-V tramite PowerShell

Nella versione Creators Update di Windows 10 (1703) è stata aggiunta la funzionalità chiamata AutoSequencer. Questa nuova funzionalità, interamente basata su PowerShell, permette di creare delle macchine virtuali e di trasformare le applicazioni in pacchetti di App-V in pochi semplici passaggi ed in maniera automatizzata. Configurazione dell'AutoSequencer Per poter utilizzare questa nuova funzionalità di AutoSequencing è necessario avere un pc fisico con installato Windows 10 versione 1703 ed Hyper-V. Inoltre sullo stesso pc deve essere installata la versione corrispondente del Windows 10 ADK (Windows Assessment and Deployment Kit), che contiene sia il Sequencer che l'AutoSequencer. Potete scaricare il Windows ADK dal link https://developer.microsoft.com/it-it/windows/hardware/windows-assessment-deployment-kit

Figura 3: Download del Windows 10 ADK

Durante l'installazione ricordatevi di scegliere la funzionalità Microsoft Application Virtualization (App-V) Sequencer e di installare sia il Sequencer che l'AutoSquencer, come mostrato in figura:

Figura 4: Installazione del Windows 10 ADK

Figura 5: Installers di App-V Sequencer presenti nel Windows 10 ADK

Per maggiori informazioni potete fare riferimento all'articolo https://docs.microsoft.com/it-it/windows/application-management/app-v/appv-install-the-sequencer . Tutte queste operazioni devono essere eseguite su una macchina fisica, perché verrà utilizzato Hyper-V. Piccola nota: io ho usato una macchina virtuale in cui ho abilitato la Nested Virtualization. Per approfondimenti su come funziona la Nested Virtualization potete visualizzare il video https://www.ictpower.it/video/windows-10-anniversary-update-highlights-tutte-le-novita-per-il-business-e-la-openness.htm

Sull'host sarà anche necessario abilitare Powershell Remoting utilizzando il comando Enable-PSRemoting da un prompt di PowerShell lanciato con privilegi elevati.

Figura 6: Abilitazione di PowerShell Remoting

 

Creazione della VM di AutoSequencing Per procedere alla creazione della macchina virtuale che utilizzeremo per l'AutoSequencing ci serviremo di uno script scaricabile dalla Technet Gallery all'indirizzo https://gallery.technet.microsoft.com/scriptcenter/Convert-WindowsImageps1-0fe23a8f .

Figura 7: Download dello script per la creazione del disco della VM

Come indicato nell'articolo https://docs.microsoft.com/it-it/windows/application-management/app-v/appv-auto-provision-a-vm lo script convertirà la nostra immagine ISO in un VHD da utilizzare successivamente per la macchina virtuale dell'AutoSequencer. La macchina usa obbligatoriamente il disco in formato VHD ed inizializzato in modalità MBR. Dopo aver avviato PowerShell ISE con privilegi amministrativi e aver lanciato lo script, eseguiamo il comando

Convert-WindowsImage -SourcePath "C:\Users\Nic\Downloads\en_windows_10_enterprise_version_1703_updated_march_2017_x64_dvd_10189290.iso" -VHDFormat VHD -VHDPartitionStyle MBR -VHDPath "C:\Users\Nic\Documents\AutoSequencer.vhd"

Indicando il percorso dove si trova il file ISO e il percorso dove vogliamo che venga salvato il file VHD.

Figura 8: creazione del file VHD da utilizare per la macchina di AutoSequencing

 

La procedura di creazione del file VHD dura qualche minuto. Al termine riceveremo conferma dell'avvenuta creazione.

Figura 9: Creazione del VHD completata

Terminata la creazione del VHD siamo pronti per poter effettuare il provisioning della VM che conterrà il Sequencer. Assicuratevi di aver scaricato sull'host il Windows 10 ADK (oltre ad averlo installato) e da un prompt PowerShell con privilegi elevati lanciate il comando:

New-AppVSequencerVM -VMName AutoSequencer -ADKPath "C:\Users\Nic\Downloads\Windows Kits\10\ADK" -VHDPath "C:\Users\Nic\Documents\AutoSequencer.vhd" -VMMemory 4096MB -VMSwitch "External Switch"

Nel comando ho indicato il percorso dove ho scaricato la versione offline del Windows 10 ADK, il percorso dove si trova il file VHD creato in precedenza, la quantità di RAM da dare alla VM e il virtual switch a cui collegare la VM.

Figura 10: Creazione della VM dell'AutoSequencer

 

L'operazione dura diversi minuti. La macchina viene avviata, Windows 10 effettuata l'OOBE (Out Of The Box Experience), viene installato l'App-V Sequencer all'interno della VM e viene catturato un CheckPoint della VM.

Figura 11: Creazione della VM

Figura 12: Copia dei pacchetti di installazione del Sequencer all'interno della VM

Figura 13: Installazione completata

Creazione dell'applicazione virtualizzata Come indicato nell'articolo https://docs.microsoft.com/en-us/windows/application-management/app-v/appv-auto-batch-sequencing per poter virtualizzare un'applicazione utilizzando PowerShell è necessario creare un file di configurazione in formato XML. Nel nostro esempio ci preoccuperemo di virtualizzare un'unica applicazione (Google Chrome) e creeremo un file di questo tipo:

<?xml version="1.0"?>
  <Applications>
     <Application>
          <AppName>Google Chrome</AppName>
          <InstallerFolder>C:\Install</InstallerFolder>
          <Installer> ChromeStandaloneSetup64</Installer>
         <InstallerOptions>/S</InstallerOptions>
         <Package>C:\Apps\Chrome.appv</Package>
         <TimeoutInMinutes>20</TimeoutInMinutes>
         <Cmdlet>true</Cmdlet>
         <Enabled>true</Enabled>
      </Application>
   </Applications>


Una volta salvato il file sarà sufficiente eseguire sulla macchina Host il seguente comando PowerShell con privilegi elevati:

New-BatchAppVSequencerPackages -ConfigFile "C:\Apps\Chrome.xml" -VMName Autosequencer -OutputPath C:\Apps\

Lo script provvederà a creare un Checkpoint, ad avviare la macchina e a copiare all'interno della VM il file di installazione di Google Chrome. Ci verrà chiesto di collegarci in Desktop Remoto e a quel punto l'installazione proseguirà in maniera automatica. Nessun intervento è richiesto da parte nostra in quanto nel file XML di configurazione abbiamo scelto di installare il software in modalità Silent indicando l'opzione <InstallerOptions>/S</InstallerOptions>. In caso contrario, procedete manualmente con l'installazione del software.

Figura 14: Esecuzione dello script di AutoSequence

Terminata l'installazione si chiuderà la connessione RDP e il package di App-V verrà copiato nella cartella indicata al momento di esecuzione dello script, come mostrato in figura:

Figura 15: Applicazione virtualizzata correttamente

 

Il pacchetto di App-V è ora pronto per poter essere distribuito tramite il portale di amministrazione del Server App-V oppure tramite System Center Configuration Manager. È anche possibile pubblicare manualmente nel client l'applicazione virtuale usando il comando PowerShell

Add-AppvClientPackage -Path "C:\Apps\Google Chrome\Google Chrome.appv" | Publish-AppvClientPackage

Figura 16: Google Chrome eseguito correttamente in App-V

Conclusioni Il nuovo AutoSequence di App-V ci permette di poter creare ed aggiornare facilmente le applicazioni semplicemente utilizzando poche righe di PowerShell. Davvero un notevole passo in avanti!