NOTE: This blog was also posted on MyCUGC.org (link) on March 3rd, 2021.
About three years ago, I posted a blog about how to perform an unattended installation and configuration of Citrix StoreFront with Ivanti Automation. It did the installation, the creation of a new store and it added a second StoreFront server to the server group.
Since most organizations are stepping away from (still awesome) tools like Ivanti Automation and are moving towards solutions like Puppet, Ansible, Chocolatey, Packer, plain PowerShell, etc., I wanted to create a PowerShell script that does the same, but does not require an automation tool.
In this short blog, I will post how it works, how you can use it and of course the scripts themselves. Keep in mind that this is just an example, it is not a definitive solution for deploying StoreFront. Also, these scripts are not signed with a certificate because you need to enter your environment specific variables.
NOTE: This blog was also posted on MyCUGC.org (link) on October 16th, 2019.
(See the script in action! Watch the webinar recording (YouTube) for a demo and discussion around the script.)
The year 2019 has been all about Windows Virtual Desktop. If you are even slightly active in the IT circles on social media, you have definitely read about it. The most interesting part about it is the fact that it finally turns Windows 10 into a multi-user OS. Of course, there are other benefits (access to FSLogix!), but that’s not what this blog is about, nor is it about Citrix’s reaction to it in the form of Citrix Managed Desktop. As the title suggests, it’s about automation. It’s about another challenge to automate something that isn’t automated (yet) out of the box.
This time, we will be trying to automate the Azure deployment of a Citrix Cloud Connector machine together with a Windows 10 multi-user VM, all the way until it is ready to accept user sessions. We will walk you through the challenges we had, the issues we ran into and why we are even doing this (short answer: because we can).
If your daily job has anything to do with virtual workspaces, you definitely have heard something about app layering. App layering is seen as the replacement for the ‘old’ application virtualization solutions like Microsoft App-V and VMware ThinApp.
While app layering is a good solution for most of the usual issues that come with running many applications on the same machines, it still takes a lot of time to create all those layers.
So together with automation-aficionado Chris Twiest we asked ourselves the question:
‘Is it possible to automate app layer creation?’
This blog will focus on the automation of creating app layers with Citrix App Layering, while Chris Twiest focused on doing the same with VMware App Volumes, the result of which you can find here. This blog is also a precursor to our presentation at the Expert 2 Expert Virtualization Conference in Athens (link).
EDIT Dec 19th 2018: Click here for a YouTube video of the presentation.
At a customer a while back we had an Citrix XenDesktop 7.9 environment. VMware vSphere 6.0 was used as hypervisor, Citrix Provisioning Services 7.9 for deployment and Microsoft Windows 10 as OS for the virtual desktops. Since these desktops were non-persistent we were able to use the local solid state storage in the hypervisors. This did however present some challenges when it came to the deployment of the virtual desktops. We (my colleague Leon van Efferen and myself) ended up with a PowerShell script that did just about everything.
In this post I will explain what the script does and what you need to do to use it in your own XenDesktop/PVS/vSphere environment. You can find the actual script at the end of the post.
Keep in mind that the customer used VMware vSphere (XenServer or Hyper-V were a big no-no for unknown reasons) and therefore the script only contains the commands for vSphere (PowerCLI 6.x). If you would like to use it for other hypervisors, feel free to alter it in any way and present it as your own on your own blogsite.
The beginning of 2018 has been all about the Intel Meltdown and Spectre vulnerabilities…….and cryptocurrency. These vulnerabilities take advantages of features that modern processors have to operate more efficiently. These features are ‘out-of-order execution’ (Intel Meltdown) and ‘branch prediction’ (Spectre).
Out-of-order execution allows a processor to execute instructions in a non-sequential manner, which will result in less time spent idle. Branch prediction is a feature that predicts what instructions will be executed and where. So in a way it will execute some instructions before they even are received from the running application.
There are several patches/updates that need to be done to mitigate these vulnerabilities. These range from new BIOS/UEFI updates, Firmware updates, driver updates and of course: patches.
There are patches from Microsoft, Red Hat, CentOS, VMware, etc. Basically just about every IT administrator has some work ahead of him/her (or he/she is already done and drinking his/her earned beer). The focus of this blogpost is the patches from Microsoft.
In previous posts I, have already provided instructions and building blocks to automate the deployment of Citrix StoreFront and the XenDesktop Delivery Controller. While the automation of the deployment of Citrix Director is still in the planning stages, someone requested a building block for the deployment of the Citrix Virtual Delivery Agent. I started looking around other Ivanti/RES ONE Automation resources and I noticed that there isn’t much available. Sure, the unattended deployment is described very well in the Citrix Product Documentation. But ROA/IA building blocks for VDA deployment aren’t too common. Reason enough for me to create them.
I will give a small walkthrough of the automation steps and why I made certain decisions and of course instructions on how to import and use them. You can find the download link for the Ivanti/RES ONE Automation building block at the bottom of this blog post.
These modules have been tested on Windows Server 2016 and Windows 10 Enterprise (version 1703) and you can use the same module for the Desktop OS installation of the VDA and the Server OS installation.
Edit March 1st 2018:
The module has been tested with the Virtual Delivery Agent of Citrix XenDesktop 7.17 and Ivanti Automation 10.2.100.0 and works accordingly. The /enable_hdx_3d_pro switch is deprecated since 7.16 and is no longer a selected option by default in the module. However, I have kept it in to keep the module compatible with older 7.x versions (like the 7.15 LTSR version for example).
Edit January 30th 2019:
I have created a new version with the new switches/features of the Citrix Virtual Apps and Desktops version 1811 Virtual Delivery Agent as described in the docs page: Link
Building block is available for download below along with the old version.
A while back I needed to automate the deployment of Citrix StoreFront 3.x for a customer I was working for at the time. However it wasn’t perfect. It only did the installation of the software and didn’t do anything with stores, server groups and certificates. Since time was scarce these items were put on hold. However, I put them on my own ToDo-list with the goal to automate an (almost) complete deployment of StoreFront with Ivanti Automation and share it with anyone who would like to use it.
I will give a small walkthrough of the automation steps and why I made certain decisions and of course instructions on how to import and use them.
You can find the download link for the Ivanti Automation building blocks here and also at the bottom of this blog post.
These modules have been tested on Windows Server 2012 R2 and 2016 (with User Experience enabled) and up to StoreFront version 1912.