--- title: "ControlUp PowerShell commands" slug: "controlup-powershell-commands" description: "Supported PowerShell commands in ControlUp" updated: 2026-01-18T13:18:19Z published: 2026-01-18T13:18:19Z canonical: "support.controlup.com/controlup-powershell-commands" --- > ## 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 Machine and Folder Management Our PowerShell cmdlets offer you finer control over your ControlUp environment, enabling you to perform actions that would be otherwise too time-consuming or not possible in the GUI. The **ControlUp.PowerShell.User** module contains most PowerShell cmdlets mentioned in this article. The monitor-specific cmdlets `Clear-CUAAQueue`, `Get-CUAAQueue` and `Open-ControlUpMonitor` can be found in the **ControlUp.PowerShell.Monitor** module. To load the modules, open a PowerShell session as administrator and run the following commands: ```powershell $pathToUserModule = (Get-ChildItem "C:\Program Files\Smart-X\ControlUpMonitor\*ControlUp.PowerShell.User.dll" -Recurse | Sort-Object LastWriteTime -Descending)[0]        $pathToMonitorModule = (Get-ChildItem "C:\Program Files\Smart-X\ControlUpMonitor\*ControlUp.PowerShell.Monitor.dll" -Recurse | Sort-Object LastWriteTime -Descending)[0]        Import-Module $pathToUserModule, $pathToMonitorModule     ``` ## ControlUp PowerShell Cmdlets **List** ControlUp entities - [Get-CUFolders](/v1/docs/controlup-powershell-commands#getcufolders). Lists all folder paths of your ControlUp organizational tree. - [Get-CUComputers](/tim-reorg/docs/controlup-powershell-commands#getcucomputers). Lists all managed machines in your ControlUp organization. - [Get-CUSites](/tim-reorg/docs/controlup-powershell-commands#getcusites). List all sites you added to your monitor settings. **Add** ControlUp entities - [Add-CUComputer](/tim-reorg/docs/controlup-powershell-commands#addcucomputer). Adds new machines to your ControlUp organization. - [Add-CUFolder](/tim-reorg/docs/controlup-powershell-commands#addcufolder). Adds a new folder to your ControlUp organizational tree. **Remove** ControlUp entities - [Remove-CUComputer](/tim-reorg/docs/controlup-powershell-commands#removecucomputer). Removes a managed machine from your ControlUp organization, but keeps the ControlUp Agent installed. - [Remove-CUFolder](/tim-reorg/docs/controlup-powershell-commands#removecufolder). Removes a folder from the ControlUp organizational tree. **Move** ControlUp entities - [Move-CUComputer](/tim-reorg/docs/controlup-powershell-commands#movecucomputer). Moves a managed machine to another folder. **Perform actions in batches** The following commands enable you to perform batch actions: - [New-CUBatchUpdate](/tim-reorg/docs/controlup-powershell-commands#newcubatchupdate) - [Publish-CUUpdates](/tim-reorg/docs/controlup-powershell-commands#publishcuupdates) - [Show-CUBatchResult](/tim-reorg/docs/controlup-powershell-commands#showcubatchresult) **Miscellaneous** - [Search-CUComputersFromAD](/tim-reorg/docs/controlup-powershell-commands#searchcucomputersfromad) - [Set-CuComputerDescription](/tim-reorg/docs/controlup-powershell-commands#setcucomputerdescription) --- ## New-CUBatchUpdate **NAME** New-CUBatchUpdate **SYNOPSIS** Performs batch updates for the computer and folder commands. **SYNTAX** ```powershell New-CUBatchUpdate []     ``` **DESCRIPTION** This command enables users to perform batch updates when it precedes another command that permits batch actions. **EXAMPLES** **Example 1:** ```powershell $b = New-CUBatchUpdate        Add-CUComputer -Name PC002 -Domain NTNET -FolderPath "\SQL Servers" -Batch $b        Add-CUComputer -Name PC003 -Domain NTNET -FolderPath "\SQL Servers" -Batch $b        Add-CUComputer -Name PC004 -Domain NTNET.local -DnsName PC004.SomeDNSName.com -FolderPath "\SQL Servers" -Batch $b        Publish-CUUpdates $b     ``` This command adds three machines to the "\SQL Servers" folder path in the organizational tree. In the first two examples, machines "PC002" and "PC003" are in the domain "NTNET", and the third in the "NTNET.local" domain, with a distinct DNS name "PC004.SomeDNSName.com". **RELATED LINKS** [Add-CUComputer](/tim-reorg/docs/controlup-powershell-commands#addcucomputer) --- ## Publish-CUUpdates **NAME** Publish-CUUpdates **SYNOPSIS** Publishes updates to the computer and folder commands. **SYNTAX** ```powershell Publish-CUUpdates [-Batch] []     ``` **DESCRIPTION** This command enables users to publish batch updates when it precedes another command that permits batch actions. **EXAMPLES** **Example 1:** ```powershell $b = New-CUBatchUpdate        Get-CUComputers -FolderPath “\SQL Servers” -Match SQLSRV | Remove-CUComputer -Batch $b        Publish-CUUpdates $bName     ``` This command removes all machines from the **\SQL Servers** folder path that match the name "SQLSRV". **Example 2:** ```powershell $b = New-CUBatchUpdate        Search-CUComputersFromAD -Domain NTNET -Name *SQLSRV* | Add-CUComputer -FolderPath “\SQL Servers” -Batch $b        Publish-CUUpdates $b     ``` The command searches for computers in the NTNET domain that contain "SQLSRV". In the organizational tree, these computers are added to the **\SQLServers** folder path. --- ## Show-CUBatchResult **NAME** Show-CUBatchResult **SYNOPSIS** Shows batch results for the performed computer and folder commands. **SYNTAX** ```powershell Show-CUBatchResult [-Batch] [[-ShowSuccess]] []     ``` **DESCRIPTION** This command enables users to show results for batch actions performed when it precedes another command that permits batch actions. **EXAMPLES** **Example 1:** ```powershell Show-CUBatchResult Remove-CUFolder -FolderPath 'CUFolder' -ParentPath 'Organization Name'     ``` This command shows the successful/failed attempts to remove multiple folders. --- ## **Add-CUComputer** The `Add-CUComputer` cmdlet allows you to add machines to your ControlUp organizational tree. You can add domain-joined and [non-domain joined machines](/tim-reorg/docs/adding-non-domain-computers-to-controlup) to ControlUp. Note This cmdlet **doesn't** automatically install the ControlUp Agent on the machine. It only adds the machine to the organizational tree. **NAME** Add-CUComputer **SYNOPSIS** Adds a machine. **SYNTAX** ```powershell Add-CUComputer [-Name] [-Domain] [[-FolderPath] ] [[-DnsName] ] [[-SiteId] ] [[-Description] ] [[-Batch] ] []     ``` **DESCRIPTION** Adds a machine account from Active Directory to the ControlUp Real-Time Console. ADComputerName describes the computer account name as it appears in Active Directory. DomainName describes the domain name from which the computer will be added. FolderPath describes the ControlUp folder path to which the computer will be added. This action can be performed in batches. **PARAMETERS** **-Name** The hostname of the machine. | Required | true | | --- | --- | | Position | Named | | Accept pipeline input | false | | Parameter set name | (All) | | Aliases | None | | Dynamic | false | **-Domain** The domain name that this machine is joined to. | Required | true | | --- | --- | | Position | Named | | Accept pipeline input | false | | Parameter set name | (All) | | Aliases | None | | Dynamic | false | -**FolderPath** The folder path in your ControlUp organizational tree that the machine should be added to. | Required | false | | --- | --- | | Position | Named | | Accept pipeline input | false | | Parameter set name | (All) | | Aliases | None | | Dynamic | false | **-DNSName** The DNS server address that this machine connects to. | Required | true | | --- | --- | | Position | Named | | Accept pipeline input | false | | Parameter set name | (All) | | Aliases | None | | Dynamic | false | **-SiteId** The site ID that this machine connects to. | Required | true | | --- | --- | | Position | Named | | Accept pipeline input | false | | Parameter set name | (All) | | Aliases | None | | Dynamic | false | **EXAMPLES** Example 1: Adds the machine with the hostname **DC01**, located in the **domain.local** domain to the folder **OrgName\domaincontrollers**. ```powershell Add-CUComputer -Name DC01 -DomainName domain.local -FolderPath OrgName\domaincontrollers     ``` Example 2: Adds the machine with the FQDN ***Monitor01.domain.local*** to the folder ***azureenv\monitormachines*** and adds a description "***Master Monitor - Site: New York***". ```powershell Add-CUComputer -Name Monitor1 -DomainName domain.local -FolderPath azureenv\monitormachines -Description "Master Monitor - Site: New York"     ``` ![Machine row named Monitor 1 displayed with Description column displaying Master Monitor - Site: New York](https://cdn.document360.io/098100b7-b9da-4bea-b4b9-017140ab863e/Images/Documentation/image-YWJFFAIC.png) Example 3: Adds the machine with the FQDN ***Monitor01.domain.local*** to the folder ***azureenv\monitormachines*** and adds this machine as a data source to all monitor machines in a specific ControlUp Site. In our case, Monitor01 is added to the New York site. To get the **SiteId**, use the `Get-CUSites` cmdlet. ```powershell Add-CUComputer -AdComputerName Monitor1 -Domain domain.local -Folder 'azureenv\monitormachines' -SiteId 62ff0d5b-143d-4d24-a2e5-15ba1c14830d     ``` ![Data sources monitored by monitor view with monitor 1 selected](https://cdn.document360.io/098100b7-b9da-4bea-b4b9-017140ab863e/Images/Documentation/image-1NX0FBER.png) **RELATED LINKS** Remove-CUComputer --- ## Remove-CUComputer **NAME** Remove-CUComputer **SYNOPSIS** Removes a computer from your ControlUp organization. The machine is removed as a data source from the ControlUp Monitor, but the ControlUp Agent is kept on the machine. **SYNTAX** ```powershell Remove-CUComputer [-Name] [[-Force]] [[-Batch] ] []     ``` **DESCRIPTION** Removes a computer from ControlUp real-time Console. Name indicates the computer to be removed from ControlUp real-time Console and can be entered as it appears in ControlUp, as an FQDN or as an IP address. **PARAMETERS** -Name | Required | true | | --- | --- | | Position | Named | | Accept pipeline input | false | | Parameter set name | (All) | | Aliases | None | | Dynamic | false | **EXAMPLES** **Example 1:** ```powershell Remove-CUComputer -Name 'John-PC'     ``` **Example 2:** ```powershell Remove-CUComputer -Name '117.34.2.7'     ``` **RELATED LINKS** [Add-CUComputer](/tim-reorg/docs/controlup-powershell-commands#addcucomputer) --- ## Move-CUComputer **NAME** Move-CUComputer **SYNOPSIS** Moves a computer between ControlUp folders. **SYNTAX** ```powershell Move-CUComputer [-Name] [-FolderPath] [[-Force]] [[-Id] ] [[-Batch] ] []     ``` **DESCRIPTION** Moves a computer between ControlUp folders. This indicates the computer to be moved from current location to -FolderPath, which determines the new location in the ControlUp Real-Time Console. The name can be entered as it appears in ControlUp, as an FQDN or as an IP address. This action can be performed in batches. **PARAMETERS** -Name | Required | true | | --- | --- | | Position | Named | | Accept pipeline input | false | | Parameter set name | (All) | | Aliases | None | | Dynamic | false | **EXAMPLES** ```powershell Move-CUComputer -Name 'John-PC' -FolderPath '\Servers\Boston'     ``` --- ## Add-CUFolder **NAME** Add-CUFolder **SYNOPSIS** Adds a folder to the console. **SYNTAX** ```powershell Add-CUFolder [-Name] [[-ParentPath] ] [[-Description] ] [[-ExcludeFromMonitor] ] [[-Batch] ] []     ``` **DESCRIPTION** Adds a folder to the ControlUp real-time Console. The folder name is specified by the -Name parameter, and its parent location by the -ParentPath parameter. If -ParentPath is not specified, the new folder is created under the root folder. Optional parameters - ExcludeFromMonitor determines whether the folder contents are to be excluded from connection by ControlUp Monitor services. If this parameter is not specified, its values are inherited from the parent folder. **PARAMETERS** **-Name** | Required | true | | --- | --- | | Position | Named | | Accept pipeline input | false | | Parameter set name | (All) | | Aliases | None | | Dynamic | false | **-ParentPath** | Required | false | | --- | --- | | Position | Named | | Accept pipeline input | false | | Parameter set name | (All) | | Aliases | None | | Dynamic | false | **-Description** | Required | false | | --- | --- | | Position | Named | | Accept pipeline input | false | | Parameter set name | (All) | | Aliases | None | | Dynamic | false | **-ExcludeFromMonitor** | Required | false | | --- | --- | | Position | Named | | Accept pipeline input | false | | Parameter set name | (All) | | Aliases | None | | Dynamic | false | **EXAMPLES** **Example 1:** ```powershell Add-CUFolder -Name 'SQL Servers'     ``` Creates a folder named *SQL Servers* under the organization root folder. **Example 2:** ```powershell Add-CUFolder -Name 'Production' -ParentPath 'Organization Name\SQL Servers'     ``` Creates a folder named “Production” under the SQL Servers folder. **Example 3:** ```powershell Add-CUFolder -Name 'Test' -ParentPath 'Organization Name\SQL Servers' -Description 'Test SQL Servers' -ExcludeFromMonitor $true     ``` Creates a folder named “Test” under the SQL Servers folder with the specified description, and instructs ControlUp to exclude this folder from monitor connections. **RELATED LINKS** [Remove-CUFolder](/tim-reorg/docs/controlup-powershell-commands#removecufolder) **REMARKS** The following characters are allowed: letters, numbers, space, dash and underscore. The following folder names are reserved and cannot be used: “Hypervisors”, “Cloud Connections”, “CVAD Sites”. --- ## Get-CUFolders Lists all folders in the ControlUp organization tree. ## Remove-CUFolder **NAME** Remove-CUFolder **SYNOPSIS** Removes a folder from the ControlUp Real-Time Console. **SYNTAX** ```powershell Remove-CUFolder [-FolderPath] [[-Force]] [[-Batch] ] []     ``` **DESCRIPTION** Removes a folder from the console. Folder path is specified by the -FolderPath parameter. Optional parameter - Force ignores any validation questions. This action can be performed in batches. **PARAMETERS** **-FolderPath** | Required | true | | --- | --- | | Position | Named | | Accept pipeline input | false | | Parameter set name | (All) | | Aliases | None | | Dynamic | false | -**Force** | Required | false | | --- | --- | | Position | Named | | Accept pipeline input | false | | Parameter set name | (All) | | Aliases | None | | Dynamic | false | **EXAMPLES** **Example 1:** ```powershell Remove-CUFolder -FolderPath 'MyFirstCUFolder' -ParentPath “Organization Name”     ``` **Example 2:** ```powershell Remove-CUFolder -FolderPath 'MySecondCUFolder' -ParentPath “Organization Name\XD Folders”     ``` **Example 3:** ```powershell Remove-CUFolder -FolderPath 'MyThirdCUFolder' -ParentPath “Organization Name” -Force True     ``` **RELATED LINKS** [Add-CUFolder](/tim-reorg/docs/controlup-powershell-commands#addcufolder) --- ## Get-CUComputers **NAME** Get-CUComputers **SYNOPSIS** Returns all managed machines in the ControlUp organization **SYNTAX** ```powershell Get-CUComputers [[-FolderPath] ] [[-Match] ] []     ``` **DESCRIPTION** When used without parameters, the cmdlet returns all managed machine. Use the `-FolderPath` parameter to search in particular folder. Using the `-Match` parameter allows you to filter computer names with regular expressions. --- ## Search-CUComputersFromAD **NAME** Search-CUComputersFromAD **SYNOPSIS** Queries the Active Directory for computers that can be added to ControlUp. **SYNTAX** ```powershell Search-CUComputersFromAD [-Name] [-Domain] [[-OU] ] []     ``` **DESCRIPTION** Searches the Active Directory for computers with the attributes ControlUp requires (Netbios and dnsHostName). You can pipe the result set to `Add-CUComputer` (use batch when adding a large number of computers). The name is the search string for the computer name. Wildcard characters are supported. The domain is the FQDN or NetBIOS name for the AD domain. ControlUp must be configured for this domain. OUs are optional and allow for limiting search results. **REMARKS** To see the examples, type: "get-help Search-CUComputersFromAD -examples" For more information, type: "get-help Search-CUComputersFromAD -detailed" For technical information, type: "get-help Search-CUComputersFromAD -full" ## Set-CUComputerDescription **NAME** Set-CUComputerDescription **SYNOPSIS** Sets the description for a managed machine. **SYNTAX** ```powershell Set-CUComputerDescription [-Name] [-Description] [[-Batch] ] []     ``` **DESCRIPTION** Updates the value in the Description column for a specific managed machine. **EXAMPLES** Example 1: ```powershell Set-CUComputerDescription -Name Monitor1 -Description "Primary Monitor - Site: New York"     ``` ![Machine Named Monitor1 displayed with Description column displaying Primary Monitor - Site: New York](https://cdn.document360.io/098100b7-b9da-4bea-b4b9-017140ab863e/Images/Documentation/image-XIMGKHJD.png) ## Get-CUSites Returns all ControlUp sites in your ControlUp environment. ## Get-ExtractLocal **NAME** Get-ExtractLocal **SYNOPSIS** Gets the extract files mode for the ControlUp Agent deployment. **SYNTAX** ```powershell Get-ExtractLocal []     ``` **DESCRIPTION** When deploying the ControlUp Agent on a machine, the ExtractLocal property describes where agent files are extracted. If set to **False**, the files are extracted remotely, while **True** indicates that files are extracted on the local machine (%appdata%/temp). You can change the setting by using [Set-ExtractLocal](/tim-reorg/docs/controlup-powershell-commands#setextractlocal). ## Set-ExtractLocal **NAME** Set-ExtractLocal **SYNOPSIS** Sets the extract files mode for the ControlUp Agent deployment. ```powershell Set-ExtractLocal [-EnableExtractLocal] []     ``` **EXAMPLES** Example 1: Sets the extract mode to **Local**. The relevant agent files are extracted in the `%appdata%/temp` folder of the console machine. ```powershell Set-ExtractLocal -EnableExtractLocal $true     ``` **DESCRIPTION** The cmdlets accepts True or False. See the description above for [Get-ExtractLocal](/tim-reorg/docs/controlup-powershell-commands#getextractlocal).