Get to know: Citrix Optimizer

BIS-F, Citrix

As mentioned on this blog (here and here), last week Citrix released the beta(!) version of a new tool, called “Citrix Optimizer” (or “Citrix System Optimizer Engine” – CTXOE). By the way: CTXOE is already supported by BIS-F 😉

But what is the purpose of this tool? If you are familiar with tools like “VMware OS Optimization Tool” you might have a pretty good idea what this tool is doing. But let’s quote Citrix: “[Citrix Optimizer] optimize[s] various components in their environment, most notably operating system with Virtual Delivery Agent (VDA).” It is PowerShell based (yeah!) but offers also an GUI.

CTXOE is using simple XML files (“Templates”) that hold the desired configuration of Services, Scheduled Tasks, Built-in Applications and other OS components. CTXOE is either setting up or only analyzing a system based on this template.

 As you can see the settings are arranged in “Groups”. Every group contains at least one “Entry”. An entry describes an action – which is the actual configuration that should be applied/checked. What the action is capable of is defined in a “plugin”. There are several plugins available:

  • Services
  • SchTasks (Scheduled Tasks)
  • UWP (Universal Windows Platform -> Apps)
  • Registry (let you define a simple Registry value)

But, enough theory…let’s check it out.

Graphical User Interface

We start with the GUI by using the CitrixOptimizer.exe in the UI folder. You can use one of the provided templates or open of your own.

Regardless of your choice you can disable actions from the template before you either analyze only (no changes) your local system or execute the changes as defined in the template. You can also save your changes as a template.


We all like to automate stuff (right?). So Citrix offers also a commandline interface or to make it clear a PowerShell script CtxOptimizerEngine.ps1 to execute CTXOE.

The script has only one mandatory parameter: Source. This parameter describes the template that is used. You only need to enter the name of the template (without .xml) if the template is located in the “Templates” folder. Otherwise you have to enter a full path.

By default CTXOE is running in execution mode. That means the settings from the template will be applied. To change this you can use two other modes by using the “Mode” parameter. “Analyze” will not apply any changes and “Rollback” will revert the changes from a previous run.

It is also possible to enter a list of “Groups” that should be executed. If this parameter is omitted CTXOE will execute all groups from the template. Caution: If you use the Groups parameter you have to use the ID of the group (see the Template xml file; no spaces!) and enter multiple groups separated by a comma; like this: “DisableServices,OptionalServices”.

To get a full overview of all parameters run Get-Help .\CtxOptimizerEngine.ps1.

BIS-F integration (beginning with 6.0.3)

Thanks to Martin Zugec from Citrix, the BIS-F team get the chance to support CTXOE very early. As mentioned here BIS-F in the current beta version 6.0.3 can execute CTXOE. The link also describes the requirements and how you can configure it by GPO.

2 thoughts on “Get to know: Citrix Optimizer”
  • Alex says:

    The tool seems to be great, like article. Thanks for it!

    June 28, 2017 at 21:54
  • Barbaros says:

    I am convinced that the tool will be better. Super explained and described.

    June 29, 2017 at 21:30
Leave A Comment

CAPTCHA ImageChange Image