A common issue arises when configuring ControlUp triggers for FSLogix profile event handling, particularly with the new Windows Event Log Monitoring feature in ControlUp Digital Employee Experience (DEX). A user setting up a trigger based on FSLogix event ID 999 (ControlUp-FSLogixProfileLocked) noticed that although the event appeared in the local Windows event log, the associated trigger action (such as running a script on profile lock) did not execute. After enabling the new Windows Event handling and creating a corresponding filter for event 999 in the ControlUp web console, the event was correctly detected, and the action was attempted but failed with the error: "Script execution failed: CUTriggerObject is not available. This script must be run from a ControlUp trigger."
The root cause relates to how the new DEX Windows Event Log Monitoring selectively forwards events based on collection rules. By default, custom events like event 999 are not included in these rules and thus remain only in the local event log, preventing real-time triggers from detecting them. When such events are collected through DEX, the script execution context differs—in particular, the `$CUTriggerObject` scripting object (which provides event details like username and machine name) is not available in scripts run through DEX event filters. This causes the script failure because it expects this object to be populated.
The solution is to add a DEX rule that explicitly collects event 999 to allow monitoring and alerting, but continue using the imported Real-Time trigger for executing the FSLogix logoff script. This trigger runs in the correct context and has access to `$CUTriggerObject`, allowing the script to function as intended. The presence of the event in the web console and receiving email notifications after adding the DEX rule demonstrate that events are collected, but only the real-time trigger can correctly handle the associated script action. Also, users should verify their scripts have the "Execute with.NET engine" option enabled to ensure proper script execution.
This issue does not stem from permissions or account misconfiguration but from the distinct operational contexts between DEX event filtering and real-time triggers. For detailed guidance, users can consult the ControlUp blog article on fixing FSLogix profile attach issues at https://www.controlup.com/blog/how-to-fix-the-fslogix-issue-the-user-profile-failed-to-attach/. Additional troubleshooting tips and best practices for script and trigger setup can be found in the ControlUp Knowledge Base and Academy resources at https://docs.controlup.com and https://cuacademy.controlup.com respectively.
Read the entire article here...
VDI Related Training & Support Archives
VDI training and support-related archives from inside the ControlUp Community on Slack.
How to Report Horizon Client Versions Across User Sessions Using ControlUp
A common requirement for managing VMware Horizon environments is the ability to report on the endpoint client versions—referred to as "HZ Client Version"—used by users to connect to the Horizon infrastructure. This need becomes particularly important in hybrid environments where users connect from both managed internal devices and unmanaged BYOD (Bring Your Own Device) endpoints. Tracking client versions helps administrators identify devices running outdated Horizon clients that require upgrades to ensure security, compatibility, and optimal performance.
Within ControlUp, the Horizon client version information can be accessed via several mechanisms. The VDI - Details view in the ControlUp console displays the HZ Client Version associated with each session, providing a straightforward way to see the current client version used. For programmatic or historical data extraction needs, ControlUp also offers a real-time data API (https://api.controlup.io/reference/gettables) which can retrieve live session details including client versions. Additionally, the "initial HZ client version" field recorded in the Session Activity report captures the client version that was used to start the session. This field, although labeled as "initial," effectively serves as a snapshot of the client version at session start.
However, because users in hybrid scenarios may connect multiple times throughout the week from different devices or update their Horizon client between sessions (for example, by disconnecting, updating, and reconnecting), it is important to consider that the client version can vary across sessions. The "initial HZ client version" is tied to each individual session start, so accumulating this information over a period allows administrators to identify all versions in use and target users on outdated clients. Pulling session activity reports over time and correlating the client versions used enables identification of BYOD devices needing updates even if the same user connects from multiple endpoints.
In summary, the "initial HZ client version" contained in ControlUp’s Session Activity reports is the key field for tracking Horizon client versions across user sessions. The ControlUp real-time data API further facilitates custom querying and automation for this reporting. For detailed exploration of session data, the VDI - Details view complements these options with an at-a-glance interface. Using these tools, administrators in hybrid environments are able to efficiently monitor and manage Horizon client versions on both managed and BYOD devices, ensuring compliance and performance consistency.
Read the entire article here...
Read the entire article here...
Managing Disk Usage on Laptops with ControlUp SIP Agent
ControlUp provides a scripting engine within ControlUp for Desktops, enabling IT administrators to distribute and execute scripts across devices in their environment. This functionality allows for tasks such as IT administration and data collection. ([support.controlup.com](https://support.controlup.com/docs/scripting-guide?utm_source=openai))
To utilize this feature, navigate to ControlUp for Desktops > Configuration > Scripts to view and manage your scripts. The Scripting Guide offers comprehensive instructions on running scripts in ControlUp for Desktops. ([support.controlup.com](https://support.controlup.com/docs/scripting-guide?utm_source=openai))
For managing disk usage on laptops equipped with the SIP agent, you can adapt existing scripts designed for VDI environments. The Scripting Guide provides detailed information on creating and managing scripts, which can be tailored for laptops. ([support.controlup.com](https://support.controlup.com/docs/scripting-guide?utm_source=openai))
Additionally, the ControlUp Script Library offers a collection of useful scripts compiled by ControlUp, which can be imported and customized for your specific needs. ([controlup.com](https://www.controlup.com/scripts/?utm_source=openai))
By leveraging these resources, you can effectively monitor and manage disk usage on laptops using the SIP agent, similar to the capabilities available for VDIs.
Read the entire article here...
Read the entire article here...
How to Deploy ControlUp Agent via GPO in VDI Environments with MSI Silent Install and PowerShell Automation
Deploying the ControlUp Agent for VDI environments via Group Policy Object (GPO) does not have a dedicated official knowledge-base article, as the installation approach aligns with generic MSI silent installs used in other deployment methods like SCCM or PDQ. The official ControlUp documentation regarding local machine connection and agent communication is the primary reference for deployment: https://support.controlup.com/docs/connect-to-your-machines-locally and https://support.controlup.com/docs/agent-outbound-communication.
For non-persistent VDI setups that use a gold master image, the recommended method is to install the ControlUp agent MSI directly on the master image with specific MSI properties: `MASTER_IMAGE=true`, along with the `AUTHKEY` and `RegistrationKey`. This avoids the need for repeated installations on cloned machines via GPO. For persistent, domain-joined virtual machines, using a GPO Computer Startup Script to run an msiexec command is preferred over GPO Software Installation because it allows passing required MSI properties. An example command line looks like this:
`msiexec /i \\share\ControlUpAgent-xxxx.msi /qn AUTHKEY="" RegistrationKey="" MASTER_IMAGE=true`
The authentication keys are retrieved from the Real-Time Console under Settings → Agent. The Registration Key is mandatory starting from version 9.0. Machines must be manually added to the organization tree unless the agent version is 9.0.5 or higher, which supports self-registration.
When GPO deployment is not optimal, if remote RPC or WMI connectivity is available, deploying the agent remotely via the ControlUp console or Monitor is simpler. For cloud-managed endpoints, Microsoft Intune is the officially documented deployment method.
A practical example was shared demonstrating a PowerShell script to deploy the ControlUp Agent MSI for VDI within a Nerdio scripted action context. The script copies the MSI from a UNC file share to a local temporary path, validates that the MSI file is correctly copied (including a check on the MSI magic bytes), and then executes the msiexec command with silent installation flags, the authentication keys, and logging enabled. It captures and reports installation exit codes and prompts when a reboot is required. The script also includes a post-installation check to list ControlUp-related services to confirm the agent installed and started as expected.
This approach encapsulates the best practice for deploying ControlUp agents in VDI environments using GPO, balancing MSI property requirements, version-specific authentication mechanisms, and practical scripting for automation. For detailed agent deployment contexts and command-line references, the ControlUp official documentation remains the authoritative source: https://support.controlup.com/docs/connect-to-your-machines-locally and https://support.controlup.com/docs/agent-outbound-communication.
Read the entire article here...
Read the entire article here...
How to Auto Log Off Idle Users in Azure Virtual Desktop Using ControlUp Triggers and Scripts
Several ControlUp community members discussed how to configure a trigger to automatically log off idle users from Azure Virtual Desktop (AVD) hosts using the ControlUp Agent for Virtual Desktop Infrastructure (VDI). One common solution is to leverage existing trigger packs within ControlUp, which include triggers designed to log off a user session after a specified period of inactivity. These triggers can be customized based on time thresholds that fit the organization’s session management policies.
An example script and detailed guidance were shared from ControlUp’s official script library, which provides automation for disconnecting or logging off idle sessions. This script can be adapted and deployed within ControlUp's automation policies to monitor session activity and log off users automatically when idle thresholds are met. The relevant resource is available at https://www.controlup.com/script-library-posts/disconnect-or-log-off-idle-sessions/.
Additional insights were shared from a ControlUp blog post that focuses on session resource optimization through automation. This post outlines best practices and practical examples of using ControlUp automation to manage session states efficiently, including auto-logout for idle sessions. The blog can be found here: https://www.controlup.com/blog/controlup-automation-session-resource-optimization/.
While native solutions like DaaS IQ might offer built-in functionality for auto-logging off idle users, many organizations have adopted ControlUp triggers as a practical workaround until formal approval or integration of native options is completed. The combination of ControlUp’s flexible triggers and scripting capabilities allows administrators to enforce session timeout policies effectively within AVD environments, optimizing resource utilization and enhancing security.
Read the entire article here...
Read the entire article here...
Understanding ALERT RULES Licensing and Usage in ControlUp One EVENTS Tab
Within the ControlUp One platform, the EVENTS tab includes an ALERT RULES section that is specifically designed for ControlUp for Desktops (CU4D). Users who do not have a CU4D license will encounter a license error when accessing the ALERT RULES tab, even though other areas like OVERVIEW and EVENT DETAILS function normally. This is because the ALERT RULES feature is directly tied to CU4D licensing and capabilities.
The ALERT RULES in ControlUp One covers alerting for CU4D, ControlUp for VDI (CU4VDI), and Synthetic Monitoring; however, the creation and management of alert rules within this tab are exclusive to CU4D. For alerting related to ControlUp for VDI and Synthetic Monitoring, users must configure those alerts within their respective products. Once alerts are configured in each solution, they will be aggregated and displayed together in ControlUp One for centralized monitoring.
In summary, the ALERT RULES function in the ControlUp One EVENTS tab is dedicated to CU4D alert creation, and attempting to access this function without the proper CU4D license will trigger a license error. Alert management for CU4VDI and Synthetic Monitoring requires using those individual products’ alerting tools, after which their alerts become visible collectively within the ControlUp One interface. This division maintains clear licensing boundaries and functional segregation across ControlUp’s different monitoring products.
For more information, see ControlUp’s official documentation on alerting and licensing at https://docs.controlup.com and explore the ControlUp Academy for training on alert configuration and best practices at https://cuacademy.controlup.com.
Read the entire article here...
Read the entire article here...
Automating VDI Registration in ControlUp Console
Automating the addition of Virtual Desktop Infrastructure (VDI) machines to the ControlUp console upon agent installation can streamline management and monitoring processes. While ControlUp for Desktops offers a command-line installation method that automatically registers machines, a similar approach for VDIs requires specific configuration.
To achieve automated registration of VDIs, you can utilize the Install-CUAgent PowerShell cmdlet, which is part of the ControlUp Automation module. This cmdlet allows for the download and installation of the ControlUp Agent on local machines, including VDIs. By providing the necessary authentication key during installation, the agent registers the machine with your ControlUp environment. For non-domain-joined machines, an API authentication token is required. ([support.controlup.com](https://support.controlup.com/docs/install-cuagent-install-an-agent?utm_source=openai))
For non-persistent VDIs, such as those created from a master image, it's essential to configure the agent to handle these scenarios appropriately. By setting the agent as a master image, it ensures that new VDIs created from this image will automatically register with the ControlUp console, preventing duplicate entries and maintaining an accurate device inventory. ([support.controlup.com](https://support.controlup.com/v1/docs/agent-outbound-communication?utm_source=openai))
Additionally, enabling folder synchronization with your VDI infrastructure can further streamline management. This feature ensures that VDIs are correctly registered and prevents stale machines from cluttering the interface. By integrating with your VDI environment, ControlUp can automatically detect and manage VDIs, enhancing the efficiency of your monitoring and management processes. ([support.controlup.com](https://support.controlup.com/docs/connecting-to-your-vdi-infrastructure?utm_source=openai))
By implementing these methods, you can automate the addition of VDIs to the ControlUp console, ensuring accurate device registration and efficient management of your virtual desktop environment.
Read the entire article here...
Read the entire article here...
How to Diagnose Microsoft Teams SlimCore Optimization in Citrix and Other VDI Environments Using PowerShell Scripts
This discussion highlights two PowerShell scripts developed to aid tracking and diagnosing Microsoft Teams SlimCore Optimization specifically within Citrix environments, with potential applicability to Azure Virtual Desktop (AVD), Windows 365 (W365), and VMware Horizon sessions. SlimCore is an optimized media stack used in virtual desktop infrastructure (VDI) scenarios to enhance Teams call performance by offloading audio and video processing to the client side.
Read the entire article here...
Read the entire article here...
How to Initiate Remote Assist for VDI Sessions in ControlUp and Upcoming Improvements to Global Search and Enrich Plugin
In ControlUp, currently the primary method to start a remote assist session for a VDI user involves navigating through the interface by selecting VDI > Details > drilling down to the specific pool, or by using the search grid to find a user, then right-clicking their session, choosing Session Management, and finally selecting Remote control. This workflow contrasts with some other remote support tools, such as ScreenConnect, which offer a global search feature enabling quick retrieval of any active session—physical or virtual—directly by searching the user's name.
The new global search functionality in ControlUp primarily directs users to the session activity reports rather than live session data. This design choice was intentional to focus on long-term historical data rather than real-time session information. However, multiple community members highlighted the benefit of extending the global search to include live VDI sessions, which would allow quicker identification and management of active sessions and streamline remote assist workflows, particularly for VDI.
The need for this improvement is tied to efforts by some organizations to consolidate tools, replacing separate remote assist products with ControlUp. The current process for VDI sessions is seen as less efficient compared to physical endpoints, where the user’s device appears directly in the global search, facilitating straightforward remote control initiation. Adding real-time VDI session data to the global search would align ControlUp’s user experience with that of other remote support tools and simplify support staff workflows.
Additionally, the community suggested expanding ControlUp’s Enrich plugin—already valued for integrating with ticketing systems and enhancing remote support capabilities—to cover VDI environments. This expansion is confirmed to be on ControlUp’s roadmap and is expected to be developed later in the year, promising to further enhance VDI support operations.
For more detailed guidance on starting remote control sessions and using ControlUp’s search features, users can consult the official ControlUp documentation at https://docs.controlup.com and explore the ControlUp Academy resources at https://cuacademy.controlup.com.
Read the entire article here...
Read the entire article here...
How to Use ControlUp Live View to Identify Processes Causing CPU Spikes in VDI Environments
When attempting to diagnose CPU spikes and identify the specific processes responsible using ControlUp, the most effective approach is to utilize the Live view, also known as the VDI page in the ControlUp Web UI. This view provides real-time, granular insights into process-level CPU consumption across virtual desktop infrastructure (VDI) environments. Unlike historical reports, which show aggregated past data such as CPU Utilization Max but lack immediacy, the Live view updates metrics approximately every three seconds, enabling administrators to track CPU spikes as they happen and correlate them with individual processes.
Accessing this Live view requires either appropriate licensing or configuration that may prompt for a user principal name (UPN) login depending on how ControlUp is set up in the organization. When correctly logged in, administrators can drill down into specific machines experiencing CPU spikes and see a detailed, sortable list of CPU-intensive processes. This functionality helps pinpoint the exact processes causing resource bottlenecks, which is critical since the total CPU utilization of a machine does not always equal the sum of all visible processes. This discrepancy arises because kernel interrupts and other system-level operations that consume CPU are not attributed to individual user processes.
Users noted that if access to the Live view is initially unavailable or the relevant VDI tab not visible, it may be due to missing licenses or particular configuration settings controlled by the ControlUp administrator in the environment. In such cases, reaching out to the administrator and providing the UPN for authentication often resolves access issues. Without this, troubleshooting CPU spikes becomes difficult, and users may resort to external scripting solutions like PowerShell, which can be less reliable and less integrated.
Once logged into the Live view, operators can monitor real-time CPU usage per user and process, identify the top five consumers, and respond quickly to performance incidents causing a slowdown in the VDI environment. While the Live view is potent for immediate troubleshooting, storing long-term granular process data in a live manner is impractical due to data volume and cost, so ControlUp uses historical reports for trend analysis. Overall, the Live view is regarded as an essential and powerful feature in ControlUp’s suite for understanding and resolving CPU utilization spikes in virtualized desktop environments.
For further information on configuring and accessing the Live view in ControlUp, administrators can consult the official ControlUp documentation at https://docs.controlup.com and the ControlUp Academy at https://cuacademy.controlup.com. These resources cover licensing requirements, configuration steps, and best practices for effectively using real-time monitoring to maintain optimal VDI performance.
Read the entire article here...
Read the entire article here...
