Let me start by saying I am a big fan of Citrix Workspace Environment Management (WEM). I love how fast it is compared to other solutions. I love how easy it is to manage a Configuration Set once the initial deployment is complete. Deploying a Configuration Set, especially in a multi-tenant environment can be a bit tedious since it involves repeating the same steps over and over again.
I was looking into ways to automate these steps for on-boarding a new Configuration Set when I discovered that there were none.
Being a Powershell automation enthusiast, I started looking into ways to use Powershell for on-boarding a new Configuration Set, and for managing existing Configuration Sets. The focus here is on on-premises installations, for now.
I decided to develop functions for each possible manual task in the WEM administration console and today, I can finally announce the availability of a Powershell module that I have named the Citrix.WEMSDK module.
Version 1912 of the module consists of 243 functions to provide complete automation. There’s a function for every single task in the WEM Administration console, which should enable you to fully automate on-boarding Configuration Sets.
in addition to on-boarding a new Configuration Set, I also included every function necessary for managing an existing Configuration Set, be it configuration-specific settings, actions, AD objects, assignments, or security settings. You can even automate role-based access when new administrators need to be added.
There’s one limitation to the module at this point in time, regarding the manipulation of actions that can be configured using a specific username and password. Primarily these are printer and drive actions. Since I could not replicate the encryption on these passwords as the WEM Administration console does, you need to stick to no username for now when manipulating these actions.
I intend to keep developing this module as WEM evolves further. There is a road-map, although it is not public yet. Some items that are on the road-map are:
- The use of (REST) APIs when they become available
- Enhancing the logic behind some of the existing functions
- Adding functions that add automation options such as mirroring Configuration Sets (even across databases)
- Additional functions to backup and restore entire Configuration Sets inclusive of assignments and AD Objects
The module is compatible starting with WEM 1903 through to current release which is 1912.
You can install the module from the Powershell Gallery with install notes documented.
Since I have yet to publish the documentation for each function, I have created a script that shows each and every function in action. That script is available on Github and more details on how and what can be found on here.
Big shout out to James Kindon (@james_kindon), Dave Brett (@dbretty) and Guy Leech (@guyrleech) for testing and letting me pick their brains on this!
Until next time,