Citrix WEM Documentation Script v2

Citrix WEM Documentation Script v2

Documenting Citrix Workspace Environment Management - Better than last time


This script is pretty much useless these days, the product evolved with too much complexity to map. This is a historical post.

WEM has offered a world of fun when it comes to environment management, however it introduces a black hole when it comes to documentation. Once your configuration is in WEM, it’s almost impossible to document, and not the easiest to track for complex deployments.

A while back I wrote a very rudimentary script that would utilise SQL queries to rip data out of the WEM database directly, and output to a pretty unstructured and nasty HTML output - it wasn’t pretty, my code was pretty sh1te, but it was something.

A couple of years on, my friend Arjan Mensch has released the big daddy of PowerShell modules for WEM, allowing for full end to end PowerShell based control of every single aspect of the solution. I have been lucky enough to be involved in the project since the first concept of the “WEM Commander” came to life, filling holes and gaps in the product which looked pretty damn cool! We have watched it move from a GUI based utility with some slight performance hassles, to an entire PowerShell SDK which offers so much control its ridiculous. You can read up on Arjan’s work here (there are a load of gems).

Given I have been working with Arjan for a while, I have been developing a new documentation script based on the new WEM SDK Module, which I am pushing live as of today for general consumption and utilisation. The new rewrite of this script is based off two community modules; the Citrix.WEM.SDK module to output the data from the WEM side of things, and the awesome PScribo module for outputting the data into a structure word document (without the need for Word).

Verbose Output

Word Output

This script is a beast, given that at the end of the day we are pulling data directly out of SQL, there was a world of pain mapping every. single. setting. in the WEM console to it’s appropriate value within the Database. I found all sorts of fun lying around in the DB schema, settings never implemented, settings on the way, forgotten bits of settings that maybe-could-of-should-of-might-be implemented in WEM at some point one day….. Shrugs.

Example Advanced Settings

It supports multiple configuration sets, and allows you to list them if you aren’t sure who is what, and what ID is who

List Config Sets

My code is what it is, this script is completely open to improvements via github. Go hell for leather with feedback or suggestions, or submit pull requests with your changes.

I hope the hours of head scratching and trawling through tables helps people out, it has been tested up to WEM 1912 release and captures all configurations associated with all features.