• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer
ControlUp Community

ControlUp Community

Connect, Learn, and Grow

  • Blog
  • Archives
  • Findings
  • Meetups
  • Videos
  • Events
  • Categories
    • ControlUp One Platform
    • ControlUp for Apps
    • ControlUp for Compliance
    • ControlUp Dashboards
    • ControlUp for Desktops
    • ControlUp for VDI
    • ControlUp Scripts & Triggers
    • ControlUp Synthetic Monitoring
    • ControlUp Workflows
  • Topics
    • Logos & Wallpaper
    • ControlUp.com
  • Join

ControlUp Scripts & Triggers Training & Support Archives

ControlUp Script and Trigger training and support-related archives from inside the ControlUp Community on Slack.


Understanding and Resolving Missing Node References Caused by Output Variables in ControlUp Workflows

Posted on October 16, 2026

A user encountered an issue where a ControlUp workflow, previously used to push alert messages to Google Chat, stopped functioning correctly. The workflow's start node began reporting a reference to a missing node, a problem not seen before. This issue coincided with the use of output variables in the workflow. Removing these output variables stopped the error messages, though including them had been necessary for the workflow to work previously. The output variables in ControlUp workflows are primarily designed for use with subflows, where a subflow acts like a function by taking input, processing it, and returning data to the main flow. The output variables specify what data the subflow returns. However, in this case, the workflow was not a subflow, and the user was instructing the workflow to return properties from an event variable that could not be found. This discrepancy caused the workflow to flag missing node references. A newer validation check within ControlUp appears to verify if workflows reference variables that do not exist. This validation is likely why the error started appearing even though the workflow continued to run and post messages correctly. Before this update, referencing nonexistent variables was silently ignored, causing no breakage. Therefore, although the output variables cause no functional harm in a non-subflow context, they create misleading error states that might confuse anyone reviewing or maintaining the workflow. The recommended resolution is to delete the output variables whenever the workflow is not a subflow. Removing these output variables prevents confusion and stops error messages related to missing nodes without impacting the workflow’s functionality. Users needing to troubleshoot similar issues should also consider exporting the workflow in JSON format and providing run history details when contacting ControlUp support. For more on ControlUp workflows, output variables, and subflows, refer to the official documentation at https://docs.controlup.com.

Read the entire article here...


Conditional Script Execution in ControlUp: Reducing Unnecessary Remediation Runs Through Compliance Custom Issues and Scheduling Improvements

Posted on October 14, 2026

A common challenge in large IT environments is running remediation scripts efficiently across thousands of devices. Typically, scripts are scheduled to run daily or on another regular interval to enforce compliance or perform necessary changes, such as modifying a registry key or folder structure. However, this approach results in many unnecessary script executions on devices that are already compliant, leading to wasted resources and longer execution times. One proposed solution is conditional script execution based on the actual state of each endpoint—running a script only if remediation is required. For example, if a device’s registry value meets the desired state, the script should be skipped for that device. This would allow the scheduled remediation to remain active while minimizing needless runs on already compliant machines. Without this capability, administrators often build checks into the script itself to exit early if no remediation is needed, but the script still needs to run on every device each time, causing inefficiency. ControlUp already supports a similar concept through its Compliance Custom Issues feature, which enables creation of conditions to detect compliance status and trigger remediation scripts only on devices flagged as non-compliant. This method, though effective, operates as a two-step process: one to detect the compliance issue (writing to the compliance index) and another to run the remediation via alerts triggered by the compliance state. While this approach works well for security and compliance scenarios, there is interest in applying it to broader desktop management use cases, including non-security remediation tasks. The key limitation is that the initial detection and remediation are decoupled, requiring two processes (condition detection and remediation execution) rather than a single conditional script execution embedded within the scheduling engine. Users have suggested enhancing the ControlUp scripting and scheduling functionality to integrate conditional execution directly—essentially embedding “if this condition is true, then run this script” logic at the scheduling level. This would allow scripts to run only when truly needed without separate detection steps, providing more efficient, self-healing capabilities across desktops and endpoints. ControlUp’s existing resources on Custom Issues, adding custom remediations, and integrating scripts for compliance illustrate the current approach: - https://support.controlup.com/docs/custom-issues - https://support.controlup.com/docs/adding-custom-remediations-to-built-in-issues - https://support.controlup.com/docs/how-to-add-scripts-to-controlup-for-compliance These documents guide users on setting up compliance checks and scripts, but the underlying model still involves separate detection and remediation phases. The ongoing community discussion highlights demand for a deeper integration of conditional execution in scheduling scripts directly, which would optimize large-scale remediation efforts by running scripts strictly on endpoints that need them without running redundant checks or remediations daily.

Read the entire article here...


Resolving Input Variable Editing Issues in ControlUp Workflows After Recent Update

Posted on October 13, 2026

ControlUp recently updated its workflow functionality with a notice that input variables are now restricted to API-triggered flows and can be marked as "Required." Additionally, workflows will warn when a flow with input variables is changed to a different trigger type. This update unintentionally disrupted a key capability: running subflows with input variables passed from a main flow. Previously, input variables in subflows functioned similarly to parameters in PowerShell functions, enabling seamless parameter passing and modification within nested workflows. Users reported that while subflows still received parameters correctly during execution, the workflow editor UI no longer allowed modification or addition of input variables for flows that were not API-triggered. This caused confusion and limited flexibility in workflow design, as input variables appeared hidden or locked outside of API-triggered contexts. There was also concern that input variables should remain editable and available for manual triggers and subflow usage, rather than being limited solely to API workflows. ControlUp’s development team investigated and identified that the core runtime functionality for passing parameters to subflows had not changed; the problem lay in the editor interface. The editor was erroneously hiding and disabling input variable editing for non-API triggered flows. A fix was prioritized and promptly released. The update restored the visibility and editability of input variables for all trigger types in the workflow editor, allowing subflows to continue receiving and modifying parameters as before. The warning banners and options to remove input variables were removed to avoid user confusion. The "Required" setting remains functional exclusively for API-triggered flows, displayed as a small toggle next to each variable rather than a checkbox. Users are advised not to use the "Remove input variables" button, as this clears the flow’s variables and may disrupt parameter passing. If variables were removed and parameter passing stopped, users can restore them in the Start node. No other action is necessary to maintain functionality. Support remains available to investigate any persisting issues. This resolution illustrates the importance of distinguishing between UI/editor features and core workflow execution in ControlUp’s flow management. It confirms that input variable functionality across different trigger types remains intact, preserving the flexibility needed for complex orchestrations involving subflows. ControlUp documentation on workflows and input variables can be referenced at https://support.controlup.com/v1/docs/create-workflows.

Read the entire article here...


How to Query Wi-Fi Adapter Driver Versions Using Custom PowerShell Scripts and Data Indexes in ControlUp

Posted on October 9, 2026

A first-time ControlUp user sought help generating a report or dashboard to query Wi-Fi adapter drivers across devices. They had PowerShell scripts producing the desired output but struggled to implement these within ControlUp. The root challenge involved correctly transforming and sending the script output to ControlUp’s custom data index for dashboard visualization. The recommended approach required modifying the PowerShell script to wrap the output in specific markers—`### SIP DATA BEGINS ###` and `### SIP DATA ENDS ###`—and present the data as a JSON array. This enables the ControlUp agent to parse and ingest the data into a custom data index, which can then be queried in dashboards. A sample script was provided illustrating how to query Wi-Fi drivers using `Get-CimInstance` filtered by device name and manufacturer, then constructing a JSON array with device name, manufacturer, driver version, and driver date properties. This script output was wrapped in the SIP markers for ControlUp Data (CU4D) to capture the information. Configuration instructions detailed how to add this script inside ControlUp for Desktops by navigating to Configuration > Scripts and creating a new script entry. Important options included setting the platform to Windows, language to PowerShell, enabling data sending to a specifically named custom data index (e.g., `wifi_adapter_drivers`), and choosing a trigger such as "Once Per Day" to optimize resource use since Wi-Fi driver info changes infrequently. They also noted enabling "Overwrite Existing Data" to maintain the current driver state without historical data buildup. After running the script on targeted devices, users could verify data ingestion under Configuration > Data and use or import JSON to visualize in dashboards. During deployment, an error involving a positional parameter indicated character encoding issues with the script on some devices, despite the command working via remote shell. This highlighted the importance of script formatting and encoding handled within ControlUp’s execution environment. Further enhancements included correcting the PowerShell property name for the device name field (switching from `device_name` to `devicename`) due to how the data was read, ensuring accurate output reflecting the adapter’s actual name rather than the computer name. A community member also shared a ready-made script and dashboard JSON import, tested on their ControlUp fleet, to streamline adoption. This example underscored ControlUp’s flexibility in integrating custom scripted data sources for tailored visibility into hardware driver versions via dashboards. This case demonstrates how ControlUp’s scripting and custom data indexing framework can extend monitoring and reporting capabilities beyond built-in metrics, supporting complex, field-specific queries through simple PowerShell integration and well-structured JSON output. Users should ensure proper script structure with SIP markers, configure triggers and data indexes thoughtfully, and validate script encoding to avoid runtime errors. Detailed guidance is available in ControlUp’s scripting guide at https://support.controlup.com/docs/scripting-guide and broader dashboard how-to resources in their knowledge base.

Read the entire article here...


Automating Quarterly VDI “Unique Users” Reports with ControlUp Workflows and Custom SQL Queries

Posted on October 9, 2026

A common request in VDI environments is automating the generation and distribution of quarterly reports that include metrics such as "Unique Users" along with detailed user session data. One such use case involves producing an Excel (CSV/XLSX) report that captures the list of users who logged into the VDI environment during the previous quarter and sending it automatically to management via email. ControlUp does not offer a direct, out-of-the-box report that automates this exact task with both unique user counts and full session data in one export, nor does it natively support emailing such reports on a quarterly schedule through the product UI alone. However, this requirement can be addressed using ControlUp’s extensibility and automation features, particularly by leveraging ControlUp Workflows and custom SQL queries within the ControlUp Insights platform. One practical implementation involves creating a custom SQL query that extracts user session activity data—such as usernames and counts of sessions per user over the desired interval. This query can be run on a schedule aligned to quarters. The results are then exported into Excel format using the Microsoft Excel integration available within ControlUp Workflows. An automated workflow can then use the Microsoft Outlook integration to send the generated report via email to predefined recipients at the beginning of each quarter, with the data covering the previous quarter. A useful example comes from a community user who adapted the "Device Inventory Report to Email" workflow template for their use case. They included a custom SQL query to capture user session activity over the last set number of days, generating a report of users and their session counts. This workflow creates a document (Excel file) and attaches it in an email sent automatically to recipients whose addresses are stored in a global variable, enabling easy customization of distribution lists. This approach requires the integrations of ControlUp for VDI, Microsoft Excel, and Microsoft Outlook to function smoothly. While this method does not currently exist as a pre-built ControlUp dashboard or report that directly sends emails on a quarterly schedule, using the powerful combination of custom SQL queries, Workflows automation, and Office integration provides a viable and robust solution. For organizations that cannot utilize AI assistance due to policy restrictions, this approach offers a fully scriptable, controlled, and customizable method to achieve the quarterly "Unique Users" report and distribution goal without manual intervention. ControlUp customers interested in implementing such solutions can explore the ControlUp Workflows feature, the SQL Query Editor in ControlUp Insights, and the email and Excel integrations detailed in the ControlUp documentation and the ControlUp Academy tutorials at https://academy.controlup.com. Additionally, the official workflow templates available in the ControlUp Console or downloadable from the ControlUp community can form a good starting point for customization.

Read the entire article here...


Resolving Device Registration Failures Using Intune Script and ControlUp’s Tracking Dashboard

Posted on October 7, 2026

A recent user shared an effective method to troubleshoot and resolve device registration failures detected via the Device Registration Failure Tracking Dashboard in ControlUp. The issue typically manifests when endpoints fail to register correctly, possibly due to mismatched or outdated registration codes that prevent successful detection and installation of necessary software components. The solution revolves around a PowerShell script (PS1) used within an Intune Script and Remediation framework paired with a Win32 application deployment set as a required install. This script checks if the device's registration code matches the expected value—defined by modifying a single variable ($ExpectedRegCode) in the script. If the detected registration code does not match, the script initiates an uninstall command to remove existing components causing conflicts. It subsequently restarts the Intune Management Extension service to trigger a forced synchronization and installation of the latest published application version. This approach ensures that devices automatically correct registration code discrepancies by clearing stale state and obtaining the correct app package and registration anew. This method leverages ControlUp’s Device Registration Failure Tracking Dashboard to pinpoint affected endpoints quickly, making remediation targeted and efficient. It is particularly useful in environments managed by Microsoft Intune, where automated script remediation helps maintain compliance and consistency of Win32 app deployments tied to device registration status. Administrators planning to apply this solution should customize the $ExpectedRegCode variable within the script to reflect their environment’s correct registration string. The process assumes familiarity with Intune’s Script and Remediation capabilities and Win32 app deployment mechanics. ControlUp documentation and Microsoft’s official Intune script remediation guides provide valuable context for further customization and expansion of this workflow.

Read the entire article here...


How to Refresh Service and Application Data On-Demand in ControlUp

Posted on October 6, 2026

A common challenge faced by ControlUp users involves timely updating of endpoint data, especially when tracking specific services or applications. In one case, a user wanted to confirm the removal of a service on endpoints but found that ControlUp still reported the service as running despite manual removal. This discrepancy occurs because the ControlUp agent updates different types of metrics at varied intervals. Core system metrics typically refresh every 60 seconds, but certain metrics such as service status and installed applications are updated less frequently—services refresh hourly (and shortly after a system reboot), while installed applications update only once per day. This update schedule means that relying solely on on-demand refresh within ControlUp for some metrics is limited, as there is no built-in immediate refresh capability for services or installed apps. To overcome this, users can create a Custom Action script to gather the needed data on-demand. By scripting, users can query the current service status or application state directly from the endpoints and write the results to a custom data index in ControlUp. This approach provides a precise and immediate reflection of endpoint conditions without waiting for the default agent update cycle. ControlUp’s scripting capabilities are documented in detail in the official scripting guide, available at https://support.controlup.com/docs/scripting-guide. This guide helps users build custom scripts that integrate into ControlUp workflows, enabling on-demand data collection tailored to specific monitoring or troubleshooting needs. As of now, no direct feature exists within ControlUp to force an on-demand refresh of hourly or daily metrics such as service and installed app status, but leveraging Custom Action scripts offers an effective workaround. Users looking to improve real-time monitoring of endpoint services should consider implementing these custom scripted solutions until such features potentially appear on future ControlUp development roadmaps.

Read the entire article here...


Handling Script Failures and Output in ControlUp Workflows: Error Ignoring, Conditional Logic, and Feature Updates

Posted on October 6, 2026

In a ControlUp workflow, users may want to handle script failures gracefully, akin to a "try-catch" mechanism seen in traditional programming. A user inquired about running an alternative action when a script run on a device fails. Currently, if the script fails, the workflow ends with an error, and no subsequent action is triggered automatically. The recommended approach is to use the "Ignore Error" option on the "Run Script" node, which prevents the workflow from stopping on error. Afterward, an "If Else" node can be added to check the status of the "Run Script" node and conditionally execute alternative actions based on success or failure. This method enables branching logic without halting the workflow. A related challenge encountered was handling multiline output messages from scripts. The native ControlUp environment does not currently support converting multiline output into a single line with or without explicit newline characters such as "\n". The ControlUp team acknowledged this need and plans to introduce this string transformation functionality soon, with expectations for release within a week. While this feature is pending, custom scripting or intermediate handling outside ControlUp might be required to process multiline outputs. Users also raised the idea of more advanced scripting capabilities within workflows, such as embedding secure, sandboxed JavaScript actions or subflows callable like functions. The team confirmed interest in this concept but noted that it is not currently on the immediate roadmap and will require future prioritization. Finally, a limitation was noted: timeout errors from script execution (defaulting to 60 minutes) cannot be ignored by the "Ignore Error" setting; when a script times out, the workflow fails by design. The ControlUp team is investigating possible improvements to how timeouts are handled in workflows. For now, users can implement error handling in workflows using the "Ignore Error" flag combined with conditional checks but should be aware of limitations around timeout errors and multiline output processing. Updates and added features are in development to enhance workflow flexibility and scripting capabilities. For more details on creating and managing workflows, users can visit the official ControlUp documentation at https://docs.controlup.com or the ControlUp Academy at https://cuacademy.controlup.com.

Read the entire article here...


How to Ensure ControlUp Compliance Scripts Correctly Return and Respect Exit Codes to Avoid False Positives

Posted on October 5, 2026

In ControlUp, when executing scripts for Compliance monitoring, it is crucial that the system correctly recognizes and respects the exit codes of these scripts to avoid false positive or false negative compliance reports. One common issue reported involves ControlUp failing to honor the exit codes returned by compliance scripts, which can lead to inaccurate compliance status being displayed. To address this, users should ensure that their compliance scripts are properly configured and that ControlUp is set up to interpret script exit codes correctly. ControlUp's official guidance on integrating scripts for compliance purposes includes instructions on how to add scripts correctly and manage their execution and return values. This documentation explains how ControlUp evaluates the success or failure of compliance scripts based on the exit codes, and how improper scripting or configuration can cause misinterpretation of compliance results. The primary resource for resolving issues related to script exit code recognition in ControlUp Compliance is the official support article available at: https://support.controlup.com/docs/how-to-add-scripts-to-controlup-for-compliance. This article provides explicit steps and examples for adding scripts into ControlUp for compliance checks, including how scripts should signal their outcomes through exit codes, which in turn informs the compliance reporting mechanism. Users experiencing false positive compliance alerts should verify that their scripts are designed to return proper exit codes — typically, an exit code of zero indicates success (compliant state), whereas any non-zero exit code indicates failure (non-compliant state). Correctly following the official scripting guidelines and ensuring scripts adhere to these conventions will help ControlUp generate accurate compliance reports without the issue of false positives due to unrecognized or improperly handled exit codes.

Read the entire article here...


Efficiently Combining and Processing Large Index Datasets in ControlUp Workflows Without Native Loop Constructs

Posted on October 2, 2026

A community member faced challenges building a workflow in ControlUp to combine two indexes dynamically for a nightly dashboard summarizing the previous day’s environment status. The primary difficulties arose from limitations in the workflow engine compared to PowerShell scripting, particularly related to looping constructs, array size management, and efficient data handling. Attempting to accumulate all data into a single large array caused performance degradation, and efforts to split data handling into groups of 100 records ran into issues because workflows lacked a traditional for-loop or the ability to reinitialize variables inside loops. ControlUp experts clarified that appending to arrays in loops is generally inexpensive, but performance issues often stem from JSON modification or calculation nodes that operate on the entire array each iteration. Instead of keeping large arrays in memory, a recommended pattern is to flip the subflow logic: allow the subflow to write records directly to the target custom index and return no data to the main flow. The main flow can paginate data requests using Get Custom Data (which supports paging via from/size parameters), looping over pages where each subflow processes one page end-to-end, avoiding large in-memory arrays and reinitialization challenges. To emulate traditional loop behavior, a “fake while loop” workaround was suggested by creating a dummy array representing the number of iterations desired (e.g., 20), then looping over that array. Combined with OpenSearch’s partitioning (`include > partitions` and `include > num_partitions`), this approach divides large datasets into manageable buckets processed in separate iterations. The configuration can be sized to match the environment—for example, capturing 4,000 records per iteration across 20 iterations to cover up to 80,000 results, adjustable as needed. A practical example from the discussion involved combining device data from two ControlUp indexes: one filtering Windows devices by specific event logs, and the other fetching device information filtered by the extracted device IDs. Merging these on the device ID with the "Preserve structure from: both" option enabled results in a unified dataset ready for further processing or custom indexing. This workflow ran efficiently in about four seconds on test data. To control data volume, filtering steps were added to isolate devices exhibiting significant event counts (e.g., more than 5 events in 24 hours), which reduced processing load while focusing on impactful network issues. The conversation highlighted the current lack of a native "for" loop feature in ControlUp workflows, but noted this capability is planned for future releases. Meanwhile, users can leverage paging, subflows writing directly to indexes, and OpenSearch partitions to manage large datasets effectively. Per-iteration writes to custom indexes are feasible if API rate limits and retry logic are properly handled. For large data reads, Get Custom Data is preferred over Get Data Index because of its paging capabilities. These insights provide a reliable framework for users needing to aggregate and analyze dynamic multi-index data in ControlUp workflows while balancing performance and complexity. For additional guidance on ControlUp workflow nodes and custom data handling, refer to ControlUp’s official knowledge-base and documentation at https://docs.controlup.com and https://cuacademy.controlup.com.

Read the entire article here...


  • « Go to Previous Page
  • Page 1
  • Page 2
  • Page 3
  • Page 4
  • Interim pages omitted …
  • Page 84
  • Go to Next Page »

Primary Sidebar

ControlUp Academy

Enroll in ControlUp Academy for expert-led technical training, equipping you with skills to effectively deploy, manage, and grow your ControlUp investment.

Learn here >

Rotating Images

Hidden Gem from our Community on Slack!

ControlUp Betas - What's Coming Next?
NEW ControlUp Features - Stay Up-to-Date!
ControlUp Scripts - Scripting, Zero to Hero
Latest KB Articles - Be the First to Learn

Video Tutorials Library

Visit our technical how-to videos, offering step-by-step tutorials on advanced features, troubleshooting, and best practices.

Watch here >

ControlUp Blog

Check out the ControlUp blog for expert advice and in-depth analysis.

Read here >

ControlUp Script Library

Visit the ControlUp technical script library, which offers a multitude of pre-built scripts and custom actions for your monitoring and troubleshooting requirements.

See here >

ControlUp Support

Visit the ControlUp support home and to delve deeper into ControlUp DEX solutions.

Browse here >

Footer

      

ControlUp Community
Of Techie, By Techie, For Techie!

Terms of Use | Privacy Policy | Security
Dive Deeper, Learn more at ControlUp.com

  • facebook
  • twitter
  • youtube
  • linkedin

© 2023–2026 ControlUp Technologies LTD, All Rights Reserved.

We use cookies to ensure that we give you the best experience on our website. by continuing to use this site you agree to our Cookie policy..