A common challenge in monitoring CPU performance is that traditional CPU utilization metrics often fail to reveal the underlying causes of slowdowns, especially in cases related to thermal or power throttling that reduce CPU frequency without triggering high CPU%. To address this, a detailed custom PowerShell script and accompanying dashboard have been developed to report CPU temperature, frequency, and distinct throttling signals in a granular and actionable way. This solution creates a dedicated data index named `custom_cpu_throttle` to track multiple independent throttling signals, enabling more precise diagnostics of CPU performance issues.
The core innovation of this approach lies in splitting CPU throttling indicators into three separate categories: thermal throttling (hardware/BIOS-related issues such as overheating or dust), power throttling (policy-related causes like power plans, Intune profiles, or BIOS max-state configurations), and frequency throttling (cases where the CPU clock speed drops below 85% of the rated max under load, capturing otherwise silent throttling scenarios common on AMD processors or CPUs with boost frequencies). By differentiating these factors, the method captures scenarios where traditional Event ID 37 logs or CPU utilization metrics miss critical performance degradations.
The script captures a range of per-device metrics during each run, including temperature and its source, throttle status types, current and maximum CPU frequency with a ratio percentage, and comprehensive throttling evidence logs that correlate performance drops with frequency and utilization data. This data feeds into a customizable ControlUp dashboard that aggregates key performance indicators, categorizes throttle types, tracks frequency trends, and identifies devices exhibiting the hottest or most throttled behavior. The dashboard also correlates these metrics with user experience signals like application crashes and digital employee experience (DEX) scores, enabling targeted troubleshooting from a single pane of glass.
Technical details specify that the solution runs on Microsoft Windows devices using PowerShell scripts triggered every two minutes (120 seconds) with a 60-second timeout and sends data to the `custom_cpu_throttle` index only when devices are online. The solution supports filtering by device, throttle type, and status for focused analysis. While the script covers many AMD-specific throttling scenarios, some complexities remain given AMD's diverse behaviors, though unrealistic values are filtered out to maintain accuracy. This tool is well-suited for IT administrators and helpdesk teams looking to resolve performance tickets where CPU utilization appears normal but throttling impacts response times, such as in Outlook or other user-facing applications.
For detailed setup or a walkthrough, the script (`SP-CPU-Throttle-v2.ps1`) and ControlUp dashboard configuration (`SP-CPU-Throttle-Dashboard.json`) are available on request. This solution is an example of extending ControlUp’s monitoring capabilities via custom scripts and dashboards to deliver deeper insights into CPU performance issues that go beyond default instrumentation.
Read the entire article here...
BIOS Related Training & Support Archives
BIOS training and support-related archives from inside the ControlUp Community on Slack.
Widget Wednesday #15: Advanced Dashboard Filters — Simpler, Smarter, Global
Widget Wednesday #15 introduces advanced global filtering in ControlUp Dashboards, enabling more precise, real-time filtering across devices, attributes, and conditions without complex variable setup.
Read the entire article here...
Read the entire article here...
Help with writing data to an index using sip data at ControlUp
A user is seeking help with writing data to an index using sip data. They provided a script for gathering device information and converting it into a JSON object, but are running into issues with the data only showing up in device events instead of the desired index. Another user suggested using "SIP DATA" instead of "SIP EVENT" and requested to see the script for further assistance. The original user provided the script for reference.
Read the entire article here...
Read the entire article here...
Creating an Alert for Windows 11 Upgrades Using SCCM and Event Logs
The members of the ControlUp community discussed creating an alert for when users upgrade to Windows 11, and potential methods to determine this information. There was talk of using SCCM for confirmation, querying event logs, and even using a custom script that was shared in the text. The script was described as an experiment that the user can share if others are interested.
Read the entire article here...
Read the entire article here...
Remediation Options for BSOD Events in ControlUp
The EDGE DX team's work focusing on BSOD events has been impressive, but some users are looking for remediation options. Windows forum responses suggest updating drivers, rebuilding the OS, or replacing the device as common options. The forum can be found at -insert ControlUp URL here-.
Read the entire article here...
Read the entire article here...
Fixing an Issue with Outputting Scheduled Tasks Trigger Info
A user encountered an issue when running a script for pulling in a scheduled tasks trigger info. The output created an index that was empty and when clicked it showed a blank page. With the help of @member, they were able to create a script that would output details from the Trigger including StartBoundary, DaysOfWeek, WeeksInterval, DaysInterval, and NextRunTime. It was suggested that specific values may have been an issue with the output, but it was not concluded.
Read the entire article here...
Read the entire article here...
Making Machine Names Clickable in Custom Reports in ControlUp Real-Tine DX
A custom report was requested to make the machine names clickable, where the Device IDs can be pulled up and added into the URL. Product Owner @member was challenged with getting the Device IDs via a script and adding it to the report. This feature request was met with enthusiasm and it was suggested to use the Device ID found in the Registry. https://tenant.sip.controlup.com/device/#DeviceID#
Read the entire article here...
Read the entire article here...
How to use ControlUp Edge DX to create a report of installed BIOS versions of your devices?
A user asked about creating a report to display machine name, model, and BIOS versions, and was advised to use Edge scripting and SIP DATA tags to convert WMI objects to JSON. To make sure the data is current, they were also advised to overwrite the data each time, and to use their own index. Certifications were also recommended. The article at https://support.controlup.com/docs/edge-dx-scripting-guide#example-for-powershell was provided for reference. The user ultimately managed to create the desired report.
Read the entire article here...
Read the entire article here...

