Posted in : Citrix, Virtual Apps and Desktops By Adam Clark Translate with Google ⟶

7 years ago

För ett tag sedan var jag i ett projekt där vi ville använda Microsoft Application Virtulization (App-V) 5.1 och Citrix Provisioning Services (PVS) 7.8. Detta är fortfarande ett relativt outforskat område även om möjligheten har funnits under en längre tid. Under projektets gång stötte vi på två stycken problemområden; startmeny och laddningstider av AppV-paket för slutanvändare. Citrix har i samråd med Microsoft lagt ut en integrationsöversikt. Denna innehåller bra information om själva funktionerna i AppV, men inte hur man sätter ihop helheten. Tanken med projektet var att behålla en så ren PVS Master som möjligt, fri från applikationer för att enkelt kunna uppdatera och underhålla applikationer utan att skapa nya vDiskar.

Redirected startmeny och inladdningstider av applikationer

Det bästa sättet för att skapa en startmeny i Citrix XenApp 7 är fortfarande att använda sig av redirected startmeny. Ett utav de stora problemen med App-V Management Infrastrukturen är att den behöver ha skrivbehörigheter på startmenyn för att kunna populera genvägarna.  Ett annat problem är att användarna behöver vänta på att App-V paketen laddas in i sessionen innan man kan starta dem. I en miljö där man estimerar att köra ungefär 400 applikationer är det orimligt att vänta på att alla dessa applikationer skall laddas in, innan användarna kan börja jobba och starta applikationerna.
För att slippa väntetiden av inladdningen av applikationer via App-V så kollade vi på att ”cacha” applikationer direkt på våra PVS Targets. Vid uppstart lade vi in ett uppstartsskript. Problemet med detta är att varje applikation behöver laddas in vid uppstart av alla targets. Fem AppV-applikationer tog ungefär 15 minuter att ladda in vid uppstart, vilket innebär att 400 applikationer skulle ta… lång tid.
Lösningen blev att köra samma startupskript på våra Masters. Eftersom vi vet att vi skulle behöva göra minst en vDisk per månad för att underhålla miljön genom Windows Updates så gör detta att applikationer läggs till, förändras eller tas bort successivt vid omstart utan någon manuell handpåläggning. Vi kör nedan skript på både Master och Targets, vilket gör att de applikationer som inte redan är cachade direkt på vDisken laddas in vid omstart. När man gör en ny vDisk laddas de applikationer som inte redan finns på Mastern in.

<#
    .SYNOPSIS
        Refreshes all App-V Packages on a master and target
    .DESCRIPTION
        Removes all packages with a deprecated path. Then adds all new app-v packages and updates those who have been updated since last cycle
    .NOTES
        Name: CTX-UAT-XA-C-AppV_PublishedStartup.ps1
        Author: Vikingur Saemundsson, Xenit AB
        Designer: Måns Hurtigh, Xenit AB
        Date Created: 2016-06-21
        Version History:
            2016-06-21
            - Initial Creation
#>
[cmdletbinding()]
Param(
[String]$AppVDir = "$Env:CTXFILEROOT\App-V\Published"
)
Begin{
}
Process{
    #Remove all app-v packages where the path is no longer valid.
    Get-AppvClientPackage | ForEach-Object{
        If(-not(Test-Path $_.Path)){
            $_ | Stop-AppvClientPackage | Unpublish-AppvClientPackage -Global | Remove-AppvClientPackage | Out-File "C:\Xenit\AppvRemove.log"
        }
    }
    #Re-publish all packages where there is a newer version
    $AllPackages = Get-AppvClientPackage
    Get-ChildItem -Path $AppVDir -Filter "*.appv" -Recurse -Force | Add-AppvClientPackage | ForEach-Object{
        $exists = $false
        $thisPkg = $_
        $AllPackages | Where-Object{$_.PackageId -eq $thisPkg.PackageId} | ForEach-Object{
            If($ThisPkg.VersionId -ne $_.VersionId){
                $_ | Stop-AppvClientPackage | Unpublish-AppvClientPackage -Global | Remove-AppvClientPackage | Out-File "C:\Xenit\AppvChange.log"
            }
            Else{$exists = $true}
        }
        If(-not($exists)){
            $thisPkg | Add-AppvClientPackage | Mount-AppvClientPackage | Publish-AppvClientPackage -Global | Out-File "C:\Xenit\AppvPublish.log"
        }
    }
}

Eftersom samtliga paket finns inlagda direkt Mastern och i sin tur vDisken som publiceras, gör detta att du kan peka dina genvägar från din redirected startmeny till C:\Programdata\AppV\<AppID>\<VersionID>\*.exe. När applikationerna redan är lagrade lokalt, kommer användarna få en mycket bättre användarupplevelse. I princip så nära på lokalt installerade applikationer som möjligt.
Kontakta gärna mig om du har problem eller vill diskutera  App-V integrationer i din Citrixmiljö.

Tags :

Personlig rådgivning

Vi erbjuder personlig rådgivning med författaren för 1400 SEK per timme. Anmäl ditt intresse i här så återkommer vi så snart vi kan.

Add comment

Your comment will be revised by the site if needed.