Objective
Citrix Data Collection Tool
The Citrix Data Collection Tool aka. CDC tool is intended to help automate data collection process and to provide ease of access. This tool has a UI version which is simple and user friendly to start and stop tools, abstracting the complexity and logic to enable and disable tools with additional configuration. The tool is a collection of complex written code to make it simple for end users, customers and engineers. Its unique and is entirely built to make the data collection process simple and much powerful. It also helps you collect OS information and environment information for better contextual information and to easily co-relate the troubleshooting dataset.
CDC helps you collect data from the below tools efficiently and you can provide additional customization to it:
- CDF
- Wireshark ( Needs to be installed on the machine separately )
- Process monitor
- Netsh ( Built-in tool for collect network trace on Windows machines )
- Workspace logs
- Storefront logs
- Process dump
- Perfmon
- WPR
- Screenshots
- Kerberos logging
The tool also has built-in features like:
- Import existing configuration file
- Run a well known PowerShell command to start the tool
- Start the tools manually
- Triggers ( Start and stop data collection based on an Event or a PowerShell script outcome )
- Copy additional folders to the log directory
- Automatic compression of the collected logs
- Upload logs directly to "cis.citrix.com"
Release v1.2 notes
- Fixed bugs to make the product better.
- Added Download Manager for downloading third-party tools, refer to the help document located inside the root folder for more information.
- Added the "Finish" button to quickly move on and start logging.
- Added the "Restart Logging" button to collect repeated datasets.
Release v1.1 notes
- CDC stops logging automatically if one of the conditions become true:
- CPU or Memory hits above 95% OR Disk space falls below 2GB of free space
- Note, free disk space checking is currently not supported for UNC paths
- Process monitor automatic log deletion if the log size reaches above 1GB only when triggers are defined. This is useful when process monitor tracing is enabled with triggers ( Start/Stop conditions/Events ). If triggers are not defined, there is no limit to procmon trace files.
- Fixed a bug where Netsh chained capture files were not getting deleted.
- UI enhancements & help documentation
Instructions
Pre-requisites
PowerShell 4.0 and above
.NET 4.0 and above
Media FrameWork 5.0 and above
PowerShell Execution policy set to RemoteSigned/Unrestricted/ByPass
Task Scheduler should be enabled for the creation of tasks to be executed when triggers are defined.
Administrator privileges
Note:
- It is recommended to use a Network location for saving logs in case of PVS devices and VMs with low disk space, when logs need to run for longer. We should keep logging minimal and short for PVS devices, and collect Network traces from Switches instead. To prevent crashes, CDC monitors health of the device during log collection, and stops logging automatically when the below conditions stay the same for average of 5 minutes:
- CPU usage is above 95%
- Memory usage is above 95%
- Disk space is less than 2 GB (if local disks are used)
- Running CDC.exe from a UNC Path ( Network location ) is currently not supported.
Compatibility
Client OS - Windows 8.1 and above
Server OS - Windows Server 2012 R2 and above
Usage
- Download CDC.zip file and extract it
- Double-click “CDC.exe” to open the GUI
- The GUI will start and provides the below three options to choose a configuration to start
There is another option “Logs from a Folder Path” wherein, you can add a folder path e.g. “c:\temp\additional logs” which will be compressed as a ZIP file and added to the final logs directory in case if you want logs to be collected from a different directory to be included.
We have three options that tell us more about it.
- Start Manually: This option allows you to start the tools manually from the page “Save & Start Logging” by clicking on “Start Logging” button
- Start on Event: This option lets you define a trigger on an Event ID to be started. E.g. Log on “Application”, Source “Citrix Desktop Service” and on “Event 1050”. As seen in the screenshot below.
- Start on Condition: This option lets you define a trigger based on the outcome of a PowerShell script block which returns the final output in Boolean true or false. e.g. If you wish to start the tools in 5 hours from the current time, then you can write a custom script block to check that condition and start the script. As seen in the below screenshot. Click “Test” button to validate the condition and care should be taken to match the current condition as “false” and the future condition will return true which will trigger the script to start.

Please refer to the CDC_Help.docx document inside the zip file on how to start and stop the tool along with detailed information on the different modes of usage
Troubleshooting
- You can refer to the troubleshooting log file placed inside "<CDC_folder>\Bin\Temp\output.txt" in case the tool fails to start due to an unexpected error. You can correct if it is a configuration error and re-run the tool.
- If you think the script is not responding or you need to reset the configuration or stop an existing session then follow the steps below:
- Open an Admin PowerShell window
- Navigate to the path where the script is located
- From the root of the path run the following command
.\CDC.ps1 -Reset
- If the GUI Window is stuck for too long on "Validating Settings" page, you may check the below to see if it helps
- Run "Get-ExecutionPolicy -Scope MachinePolicy" and verify if it is set to either "AllSigned/RemoteSigned". If this is the case, you cannot override PowerShell execution policies as it is set at machine level.
- Manually Execute the CDC Script once and if it prompts to allow the script for execution, PRESS the letter "A" to make sure the Citrix certificate is trusted and future executions are allowed and it does stop to prompt each time. You can run the below command from the root directory of CDC from an Admin PowerShell command to verify if the issue is due to certificate not trusted.
.\CDC.ps1 -Reset

Additional Resources
Authors of the tool:
- Rahul Deshmukh
- Chintu Sinha