Jump to content
Welcome to our new Citrix community!
  • Quickly Updating Persistent MCS VDAs


    davidottrnd.jpg.89714cdb2c141d86953a50989d91d51b.jpg by David Ott, CTA

    I have to maintain the VDA software on roughly 100 persistent MCS desktops. Every time Citrix came out with a new version of Virtual Apps and Desktops (XenApp/XenDesktop), I would cringe at the thought of having to "touch" every one of them. It usually took me two or more weeks to get through them all.  I finally got tired of that process and decided to script it. It has saved me a ton of time (and from pulling out all of my hair), and I hope it can help others as well.


    The really short version of how it works:

    1. Gets a list of computers from the DDC (or you can manually input the computer names into the script).
    2. On each computer it will create two scripts, and two scheduled tasks.
      1. The first script loads auto logon information into the registry (local administrator account)
        1. Executed one time to restart the machine
      2. The second script handles the VDA removal and install of the new version.
        1. Executes when the local administrator logs on

    At the end, it removes the scheduled tasks, the PowerShell scripts copied to the VDA, and auto logon information.

    Here is the script - read through all the comments, so you know how to edit it for your environment.

    I also created a 

     from an older version of the script if you want to get a better idea of how it works. It was designed to work with Citrix Hypervisor (XenServer), but the new one uses a mapped drive instead.

    User Feedback

    Recommended Comments

    Thank you for this - this is super helpful.


    My question, and apologies for this as I am still a beginner..


    Why do you back tick multiple variables throughout the script? I understand that this is to tell powershell to interpret the following string literally instead of looking for an associated variable.


    I.E. `$log = "logfile"


    Thank you :)

    Link to comment
    Share on other sites

    Hi for Persistent Full Clone Desktops via MCS


    `$installargs = "/quiet /noreboot /components VDA,PLUGINS /controllers ``"deliverycontroller1.domain.com deliverycontroller2.domain.com``" /install_mcsio_driver /enable_remote_assistance /enable_hdx_ports /enable_hdx_udp_ports /optimize /enable_real_time_transport /enable_framehawk_port /masterimage /virtualmachine /exclude ``"Personal vDisk``",``"Citrix Telemetry Service``""



    If its a persistent and not the actual master image i suppose don't you have to remove the /masterimage if its its own dedicated mcs persistent desktop? also why did you include mcsio_driver if that is for non-persistent desktops?


    Thanks in advance

    Link to comment
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

  • Create New...