App-V 5 and Provisioning Services


App-V 5

In my last blog 7 Reasons Why You Need to Learn App-V 5 I talked about how important it is for you to start playing around with App-V 5.

Since all Citrix XenApp / XenDesktop and RDS should be running App-V 5 with Shared Content Store it’s important to leverage Windows 2012 and SMB 3.0 as I wrote about in this post Make your network 10x faster.

With App-V 5 you can easily publish all packages from a folder. This is the PowerShell script I’m running at startup for my XenApp 6.5 VM’s streamed with Provisioning Services.

It first removes all the packages and then it grabs and publishes all those App-V packages and App Connection Groups from a DFS-R share hosted on Windows 2012.

On Windows 2008 you needed to choose between Windows Server Full or Windows Server Core during the installation. With Windows Server 2012 you can simply install the GUI, configure your software and then remove the GUI with PowerShell.

I would recommend you locking down most of your Windows 2012 Servers this way, you can always enable it later if needed.

So my Citrix Provisioning Services 6.2 is running on Windows 2012, but I have used the App-V 5 Sequencer to virtualize the Provisioning Services Console and run it from my XenApp Desktop.

App-V 5

So what do you need to get started?

RDS CALs (2008 R2) include an App-V CAL so you really just need to install the App-V 5 RDS client on your servers, an App-V 5 Sequenzer machine and a share to put the packages.

If you need more information I’ve created this App-V 5 Training Course to get you up to speed. This is the fastest and easiest way to learn Microsoft Application Virtualization 5.


Automation Framework Community Edition

The fastest way to build your lab environment.

Virtual Expo

Friday 30th of September 2022

31 thoughts on “App-V 5 and Provisioning Services”

  1. Hi,
    Very interesting. I am planning a App-V 5 deployment together with PVS 6 and Xenapp 6.5. Res workspace manager will do it’s profile magic.

    Am I correct that we do not need the App-V backend infrastructure (management server, distribution server)? Only a stand alone App-v client, the content share and a powershell script for adding/publishing our packages?

    Thanks a lot

  2. Hi Trond,

    I cannot find any information how the shared content store impacts the RAM requirements of the Xenapp servers.
    If I understood correctly App-v will cache into RAM. I assume that executing the application will load it a second time into RAM?

    Is that correct?

  3. It all depends on your applications Pieter. The first time it will load into memory and the 2nd time load from memory. To get a complete picture of the impact you could use LoginVSI for performance testing.

  4. Thanks, Trond.

    I fully agree that some load testing will give us a better picture.

    Is it possible to clarify it just a bit more using for example this easy scenario?
    – App-V package size 100 MB
    – Shared content store enabled
    – Powershell used to completely cache up front (i guess in RAM)
    – This consumes 100 MB in ram?
    – User starts executable from package
    – This consumes additional RAM because exe is also loaded in RAM?

    Thanks a million

  5. I don’t have or are aware of any scripts for starting the App-V 5 packages a startup. But it’s pretty simple to make one.

    Each open instance of the application will consume 100 mb ram.

    The difference between the 1st & the following app launches on the same server is the load time. The 1st is slow, the other are much faster.

  6. How did you exactly deploy this script if you don’t mind me asking. I’ve tried batch and task scheduler, the script appears to run fine due to having apps present but they crash at launch. However if I run the script manually on the console with the same account as i am using to try to automate it at startup, they launch fine.

    • Program : %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe

      Arguments : -ExecutionPolicy Bypass -file “\\dc01\xa\Scripts\appv5withpvs.ps1”

      Inside my App-V 5 training I show you step-by-step 😉

  7. Hi Erik,

    Do you have any tips for the best way to create XenApp published apps from the App-V applications?
    Is it better to XenApp-publish using the .lnk files from the app-v package? Or are there any easier ways of doing it? Using the .exe sparse files in the App-V packageinstallation root as the commandline in the XenApp published app would be good, but it is a bit hard to manage due to the folders ….. 🙁


      • Thanks Eirik.
        I’ve managed to find a suitable solution to the application publishing of App-V in XA6.5 by creating ‘hard-links’ (junction points) with the actual name of the App-V package that points to the {PackageID}\{VersionID} folder.
        So, the XenApp admins can then simply publish the .exe files as they normally would and it’s pretty easy to find the required .exe files by browsing through the folder of junction points that are named after the App-V package names. 🙂


  8. Hello Eric,

    You title this post “App-V 5 and Provisioning Services” and you detail the script you use for clearing down and then pulling in all the packages and connection groups from a share on a PVS target device. What it does not say is how or why this specifically relates to PVS targets and why this script is a good fit for that scenario.

    Is Shared Content Store really the best practice for PVS targets and do you think it is a good idea to repoint the (tiny in SCS) packages to a persistent caching drive or leave it as default on the read only system volume?

    Also in your script are you pulling down just one specific connection group there rather than all?



    • Hi Andrew, SBS is best practices because your XenApp / XenDesktop / RDS sessions is running in the Data Center and the storage cost is high and the network bandwidth is high. So there’s no reason for not running SBS as explained in this post :

      My experience is to just keep it simple, redirecting the %AppData% stuff to the cache drive won’t save you much.

      The example is just pulling down 1 connection group, so you need to add each and every one of them, at the time I don’t have a PowerShell script for this.

  9. Hi Trond,

    First of all thanks for the usefull info. I see problem however; CPU is at 100% for 5+ minutes (10 gb content store) during removing, adding and publishing the app-v packages. This might not be an issue in sbc environments, but it might be an issue in VDI environments…

    Wondering if pre-adding and publishing the appv packages in the vdisk and using an App-v 5 publishing server to do only an app. Refresh at the start of a VDI client ( to get the latest apps which aren’t in the vdisk yet) would be lighter on the CPU and therfor being a better choice for use in VDI environments?

  10. This is when using shared content store. It’s only creating the filepointers and loading FB0 (icons, xmls etc) during startup. CPU is going crazy for several minutes. Preloading the full appv packages (10Gb) takes about 20 minutes @ 100% CPU (Windows 7 so SMB2).

    This is our first App-V 5 project but Appv-5 seems a real CPU hog… :/

    • Yes you are correct, another problem is the Start menu hanging when doing the refresh at logon. This is fixed in SP2, don’t know if this applies to the CPU problem as well, the best place to ask would be the MS App-V forum. You could try pre-loading the packages as you mentioned below, but this will be a lot more work.

  11. Hi Trond,

    Am a fresher in App-v 5.0, Dont have much knowledge in the earlier version as well.
    But am keen in mastering this technology. Can you please guide me?

  12. Hi Trond,

    Thanks for this great post.

    I am asking myself if there is a way to control the file type association in a XenApp published desktop if I do not use a Management server (I want the file type association only for users who need the application)?

    Thanks by advance.

  13. Hi Trond
    Thank you for this very good post.
    We deploy App-V 5 with XenDesktop Provisioning 7.1 (2012R2).
    I launch with startup in GPO this Skript:
    Import-Module AppvClient
    Remove-AppvClientPackage -Name *
    Get-ChildItem “\\ctxlab\appv5\packages\WS2008\” -recurse -force -include *.appv | Add-AppvClientPackage | Publish-AppvClientPackage –global

    The Removing is good, but it doesn’t publish the Applications in the directory. When i run the script manual it works good.

    Is it possible that the App-V services is starting to late?

    Greatings and thank you again for this post

  14. How did you get the App-V Scheduler to work? We’re running Citrix PVS 6.1(hotfix19) with Xenapp 6.5 and App-V 5.0 SP2. When I install it on our PVS disk and configure it, then reboot the disk in read-only, it pops up that error message box on the GUI. The powershell script at startup doesn’t work very well for us as it takes too long for the packages to come available to the users, especially in a published destkop environment.

  15. The only and BIG problem with this relatively easy approach (Publishing App-V globally), is that all users on the XenApp servers get the shortcuts, File Type Associations, Browser Helper Objects, Shell Extensions etc. wether we want them to or not. This creates problems like for example: Suddenly all users PDFs start opening in the published Acrobat Pro instead of Adobe Reader wether they are given access to it or not.


Leave a Comment