--- 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) ##