• 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

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 ‘How to Query Wi-Fi Adapter Driver Versions Using Custom PowerShell Scripts and Data Indexes in ControlUp’ thread below:

Morning, first time controlup user here. Trying to generate a report (or dashboard) to query Wi-Fi adapter drivers. Got a couple powershell scripts that will output what I want, just having challenges putting that to practice in control up. Anything i could be missing or any directions I can be pointed to?


can you share the scripts please and/or the output? Have you checked the scripting guide and mainly the writing to an index option? support.controlup.com/docs/scripting-guide#…a very common issue is that the json is more than 1 level deep


heres the ps script i would like to use:
“`Get-CimInstance -ClassName Win32_PnPSignedDriver `
-Filter “DeviceName like ‘%Wi-Fi%’ and (Manufacturer like ‘%MediaTek%’ or Manufacturer like ‘%Intel%’)” `
| Select-Object DeviceName, DriverVersion ““


I asked out AI Assistant to help her, here is the reply:


Good news — this is very doable in CU4D, and I’ve got exactly what you need from the Scripting Guide. Here’s the amended script plus the setup steps so your community member can wire it into a Custom Dashboard.

Amended PowerShell Script
The key change: wrap the output in the `### SIP DATA BEGINS/ENDS ###` markers as a JSON array, so the CU4D agent picks it up and writes it to a custom data index.


[Console]::OutputEncoding = [System.Text.Encoding]::UTF8

$results = Get-CimInstance -ClassName Win32_PnPSignedDriver `
-Filter “DeviceName like ‘%Wi-Fi%’ and (Manufacturer like ‘%MediaTek%’ or Manufacturer like ‘%Intel%’)” `
| Select-Object DeviceName, Manufacturer, DriverVersion, DriverDate

$dataList = New-Object ‘System.Collections.Generic.List[psobject]’

foreach ($r in $results) {
$row = @{}
$row[“device_name”] = $r.DeviceName
$row[“manufacturer”] = $r.Manufacturer
$row[“driver_version”] = $r.DriverVersion
$row[“driver_date”] = “$($r.DriverDate)”
$dataList.Add($row)
}

Write-Output(“### SIP DATA BEGINS ###”)
Write-Output(ConvertTo-Json $dataList -Compress)
Write-Output(“### SIP DATA ENDS ###”)


and the step by step instructions:
Setting it up in ControlUp for Desktops
1. Go to ControlUp for Desktops > Configuration > Scripts > Add Script.
2. Fill in the fields:
◦ Platform: Microsoft Windows
◦ Language/Interpreter: PowerShell
◦ Content: paste the script above
◦ Trigger: pick something like Short/Long Interval Timer or Once Per Day (since Wi-Fi driver info rarely changes, Once Per Day is efficient)
◦ Timeout: 60 seconds is plenty
◦ Data Collection → Sends Data: enable this, then under Data Index, type a new name (e.g. `wifi_adapter_drivers`). ControlUp auto-creates this custom index the first time the script runs successfully.
◦ Optionally enable Overwrite Existing Data if you only want the latest driver version per device (recommended here, since you’re not tracking history — just current state).
3. Click Create Script, then let it run (via the trigger, or manually as a Custom Action) on a batch of devices to populate the index.
4. You can verify data landed by checking Configuration > Data > wifi_adapter_drivers.


hope this helps


thank you so far got 1 successful device query, I’ll leave it running to see if more are picked up


well, still only 1 device has worked, all others generate the following error message: A positional parameter cannot be found that accepts argument ‘Â’. At C:\ProgramData\Avacee\sip_agent\scripts\h0_7F6EBewlUPquJSvL2.ps1:3 char:12 + $results = Get-CimInstance -ClassName Win32_PnPSignedDriver `
however the entire command does run through remote shell


Hmm probably needs some better PS scripting abilities then me and AI Assistant on first try


Cc can you pls help here?


Hi hope everything is well. Here is everything you need to do this usecase ControlUp for Desktops allows you to bring any machine data to its platform with a script and visualize it in dashboards. To help you with this first usecase I created a dashboard and script for you and tested it on our own ControlUp fleet. The included.txt file you can import into our script engine by clicking Import File then set the options of the script as I did in the screenshot. So Once Per Day, Script Enabled, Send Data, Overwrite Existing Data and Data index: wifi_drivers. Then import the included JSON into the dashboard section and your ready to go See the dashboard screenshot. Goodluck hope this does what you want!


Thanks everyone! I can confirm the script and json works exactly as shown above


Awesome


Just caught this, script isn’t catching the wifi adapter name (ex. meditek wi-fi 6e etc.), device name is showing the computer name, which is also needed


Do you feel comfortable adding it to the script your self? Or else I can look at it Friday


Yes I’m confident I can add it myself


Cool if you need help i can do it Friday! GL


Got it to output, needed to change ‘device_name’ to ‘devicename’ below:
“`foreach ($r in $wifi) {
$row = [ordered]@{

devicename = [string]$r.DeviceName
Manufacturer = [string]$r.Manufacturer
driver_version = [string]$r.DriverVersion
driver_date = ConvertTo-IsoDate $r.DriverDate
}
$dataList.Add([pscustomobject]$row)
}“`


thx all!

Continue reading and comment on the thread ‘How to Query Wi-Fi Adapter Driver Versions Using Custom PowerShell Scripts and Data Indexes in ControlUp’.  Not a member? Join Here!


Categories: All Archives
Topics: Automation & Alerting, ControlUp Agent, Microsoft, Microsoft Windows, PowerShell, Reporting, Scripts, Triggers

Ask Us Anything, Connect, Learn, and Grow with the ControlUp Community!

Login to the ControlUp Community to ask us anything, stay up-to-date on what’s new and coming soon and meet other like-minded techies like you.

Not already a member? Join Today!

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..