---
title: "ControlUp Monitor PowerShell cmdlets "
slug: "monitor-cluster-powershell-api-cmdlets"
description: "New cmdlets introduced in version 8.6.5 enable a programmatic way to query your monitor cluster with PowerShell.  "
updated: 2025-07-03T10:28:58Z
published: 2025-07-03T10:28:58Z
canonical: "support.controlup.com/monitor-cluster-powershell-api-cmdlets"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://support.controlup.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PowerShell Cmdlets for Monitor Cluster Management

You can use our ControlUp PowerShell cmdlets to gain deep insights into the activity of your monitor cluster and its connected data sources.

## Benefits of using cmdlets

- **Programmatic interface**. You can use your PowerShell knowledge to programmatically access monitor data. Build your own scripts to automatically perform tasks or write an ad-hoc command to query a specific metric from any ControlUp entity, such as virtual machines, user sessions, or running processes.
- **Troubleshooting**. Are you missing historical or real-time data from specific machines in the VDI App? Does the monitor have trouble connecting to a ControlUp Agent? The cmdlets are useful in troubleshooting issues.
- **Performance and scalability**. The performance of the cmdlets scales well with data growth. You can run the cmdlets without any degradation in performance in large environments with tens of thousands of ControlUp Agents.

## Prerequisites

- ControlUp version 8.6.5 or higher
- You must have at least one ControlUp Monitor installed
- Permissions to run scripts on the monitor machines
- Monitor cluster PowerShell commands must be run on the Monitor machine

## PowerShell Cmdlets Overview

- [Invoke-CUQuery](/v1/docs/invoke-cuquery). Queries the monitors' in-memory database for the current state and displays the data in the PowerShell session.
- [Export-CUQuery](/v1/docs/export-cuquery). Queries the monitor's in-memory database and exports the results to a JSON or CSV file.
- [Get-CUVendorVMs](/v1/docs/get-cuvendorvms). Returns all machines under a specific folder path. This folder path is the property of a ControlUp extension, such as Horizon, CVAD, Azure, or AWS.

## Getting Started

### Step 1: Import the Module to your PowerShell Session

Before you can start using the cmdlets, import the `ControlUp.PowerShell.User` module on a monitor machine into your PowerShell session.

```powershell
$pathtomodule = (Get-ChildItem "C:\Program Files\Smart-X\ControlUpMonitor\*ControlUp.PowerShell.User.dll" -Recurse | Sort-Object LastWriteTime -Descending)[0]
Import-Module $pathtomodule
```

The module was imported successfully if no error message is shown.

### Step 2: Learning about the Cmdlets

As soon as you import the module, you are ready to use it. To learn more about each cmdlet, refer to the [Invoke-CUQuery](/v1/docs/invoke-cuquery) and [Export-CUQuery](/v1/docs/export-cuquery) articles. Additionally, you can use PowerShell's built-in help system **Get-Help** which covers the syntax and parameters in great detail.

```powershell
Get-Help Invoke-CUQuery -Full
```

### Step 3: Read the Reference

Refer to the [reference table](/v1/docs/monitor-cluster-powershell-api-reference-tables) to see how you can query the monitor's in-RAM database. When using the cmdlets to query the database, make sure you type your parameter values correctly since they are case-sensitive.

### Step 4: Run your First Query

Let's run your first query against the monitor's in-memory database. In this example, we will use a command to query all machines that show a critical Stress Level.

```powershell
(Invoke-CUQuery -Scheme Main -Table Computers -Fields sName, SeverityLevel -Where "SeverityLevel = '5.0'").Data
```

![Powershell window displaying Invoke-CUQuery cmdlet output results](https://cdn.document360.io/098100b7-b9da-4bea-b4b9-017140ab863e/Images/Documentation/image-1650453012554.png)

##
