PowerShell Drive and Cmdlets for managing UiPath Orchestrator.
Note: UiPathOrch is an open-source PowerShell module for managing UiPath Orchestrator. It is not an official abbreviation of, or part of, the UiPath Orchestrator product.
UiPathOrch is a PowerShell module that enables you to mount multiple Orchestrator tenants as PSDrives, allowing you to navigate through their folders using familiar commands like cd, dir, mkdir, rmdir within the PowerShell console. Beyond simple folder navigation, it facilitates the manipulation of various entities through a range of cmdlets and wildcards.
This module uses the Orchestrator API to mount modern folders as local drives, making them accessible from the PowerShell console with file system-like operations.
Works against Automation Cloud, Automation Suite, and on-premises Orchestrator deployments — the deployment kind is auto-detected from the drive's Root URL (or pinned explicitly via the Edition config field).
Note: This module functions even in environments where Studio/Assistant is not installed.
Execute bulk operations across multiple folders and tenants with a single command, eliminating the need for scripting or CSV preparation.
Perform advanced operations like downloading only active packages or detecting long-pending jobs to trigger email notifications.
Facilitate tenant migrations by copying various entities between tenants efficiently.
| Service | Read | Write | Copy to another tenant | Notes |
|---|---|---|---|---|
| Orchestrator, tenant entities (libraries, packages, credential stores, roles, users, machines, calendars, webhooks) | Yes | Yes | Yes: copy OldOrch:\ NewOrch:\ |
The API never returns secrets (passwords, client secrets), so they are re-entered after a copy. |
| Orchestrator, folders and folder entities (processes, assets, queues, buckets, triggers, test sets, …) | Yes | Yes | Yes: copy -Recurse OldOrch:\ NewOrch:\ |
Queue items and bucket files are copied by their own cmdlets; event triggers are not copied. |
| Jobs, logs, audit logs | Yes | Jobs: start, stop, restart | No | |
| Organization: local users, groups, robot accounts, external applications | Yes | Yes | Yes, to another organization: Copy-PmUser, Copy-PmGroup, Copy-PmRobotAccount, Copy-PmExternalApplication |
Directory (AD / Entra ID) users are not created; they come from the identity provider. |
| Organization: tenants and their services | Yes | Yes: create, update, enable, disable, remove, restore; add, remove, enable, disable services | No | Automation Cloud and Automation Suite only. |
| Licenses (organization and tenant) | Yes | Allocation to users, groups and tenants; runtimes per machine | No | |
| Document Understanding | Yes: projects, extractors, document types, classifiers, roles, users | Role assignments of users only | No | |
| Test Manager | Yes: projects, requirements, test cases and steps, test sets, executions, settings, permissions | Yes: projects, requirements, test cases and steps, test sets, assignments | Yes: copy Orch1Tm:\PRJ Orch2Tm:\, Copy-TmTestCase and its kin |
Custom fields, attachments, executions, defects and linked automation are not copied. |
Anything without a cmdlet can still be called with Invoke-OrchApi.
See the Cmdlet Reference for every cmdlet and the Migration & Copy Guide for what a copy carries.
- PowerShell 7.4.2 or later (running the latest 7.4.x patch is recommended — older 7.4 patches carry known PowerShell-runtime security fixes)
- UiPath Orchestrator API access with appropriate OAuth scopes
Install-PSResource UiPathOrch
Import-OrchConfigRun Get-OrchHelp for a getting started guide, or see the Docs folder in the module directory.
# Navigate to an Orchestrator drive
cd Orch1:\
# List folders
dir
# Navigate to a shared folder
cd Shared
# List assets in current folder
Get-OrchAsset# Target multiple folders across tenants
Get-OrchAsset -Path Orch1:\Shared,Orch2:\Shared
# Operate on all folder entities recursively
Get-OrchAsset -Recurse# List all cmdlets in UiPathOrch
Get-Command -Module UiPathOrch
# Get help for a specific cmdlet
Get-Help Get-OrchAsset -Full
# Open the cmdlet's online reference page in a browser
Get-Help Get-OrchAsset -OnlineGuides (each cmdlet's full help is also at Get-Help <CmdletName> -Online):
- Getting Started — install, OAuth setup, first connection
- Folder Operations — navigate & manage folders:
cd/dir,New-Item,Rename/Move/Copy/Remove-Item,Set-ItemProperty -Name Description - AI Integration (PowerShell.MCP) — connect an AI assistant through a shared PowerShell console
- Essential Guide for AI — execution rules, decision flow, error protocol
- Cmdlet Reference — cmdlets by area, with examples
- CSV Export & Import — bulk import / export patterns
- Migration & Copy Guide — lift-and-shift between tenants
- Logs, Jobs & Queues — drive
Get-OrchJob,Get-OrchLog,Get-OrchAuditLog,Get-OrchQueueItemand friends efficiently - Licensing Guide — license cmdlets at the organization (
Pm*) and tenant (Orch*) layers - Credentials & Secrets — the write-only-secrets rule and how to re-set each entity's secret
- Other Providers (DU & Test Manager) — the Document Understanding and Test Manager drives
- Troubleshooting — verbose logging, raw API access via
Invoke-OrchApi - Contributing — bug reporting, building from source
Also:
- Inline help:
Get-Help <cmdlet-name>for OAuth scopes and usage;Get-OrchHelpfor a summary (the same guides ship in the module'sDocsfolder) - Marketplace: UiPathOrch on UiPath Marketplace
UiPathOrch works with AI agents through PowerShell.MCP, which exposes a PowerShell console as an MCP server. Agents can navigate Orchestrator folders, manage entities, and use tab completion programmatically via TabExpansion2. The Docs folder in the module directory includes documentation written for both human users and AI agents.
In non-interactive environments (GitHub Actions, other CI runners, containers, scheduled jobs), the default first-import behavior — creating a template config file and opening it in Notepad — is undesirable. Set the UIPATHORCH_SUPPRESS_CONFIG_CREATION environment variable to 1 to skip both, then mount drives directly with New-OrchPSDrive so no config file is needed.
# GitHub Actions example
- shell: pwsh
env:
UIPATHORCH_SUPPRESS_CONFIG_CREATION: 1
ORCH_URL: ${{ secrets.ORCH_URL }} # https://cloud.uipath.com/<org>/<tenant>
ORCH_APPID: ${{ secrets.ORCH_APPID }}
ORCH_SECRET: ${{ secrets.ORCH_APPSECRET }}
run: |
Install-PSResource UiPathOrch -TrustRepository
Import-Module UiPathOrch
New-OrchPSDrive -Name Orch -Root $env:ORCH_URL `
-AppId $env:ORCH_APPID -AppSecret $env:ORCH_SECRET `
-OAuthScope 'OR.Folders OR.Assets OR.Settings'
Get-OrchAsset -Path Orch:\SharedNotes:
-
A confidential application (
-AppId+-AppSecret, OAuthclient_credentialsgrant) is the recommended auth for CI. PKCE requires an interactive browser and cannot be used headlessly. Personal Access Tokens (-AccessToken) work but tie the pipeline to an individual user and inherit that user's full permission set, so prefer a confidential app per pipeline with the minimum OAuth scopes required. -
Pass secrets via
env:rather than inline command arguments so GitHub Actions log masking covers them and they don't appear in command echoes. -
For on-premises Orchestrator or self-hosted Automation Suite that isn't reachable from GitHub-hosted runners, use a self-hosted runner inside the network where the deployment is accessible.
-
For ad-hoc API calls in CI (e.g., calling an endpoint with no dedicated cmdlet), use
Invoke-OrchApirather than extracting the bearer token. It reuses the drive's authenticated session, so the access token never leaves the module — no risk of leaking a live token into pipeline logs:Invoke-OrchApi -Path Orch: -Uri '/odata/Folders?$select=Id,DisplayName'
-
Avoid piping
Get-OrchPSDriveoutput to logs in CI. Its output exposes a liveAccessTokenproperty as a documented diagnostic feature (seeDocs/90-Troubleshooting.md); commands likeGet-OrchPSDrive | Format-List *orConvertTo-Jsonwould emit it. GitHub Actions log masking covers only the registeredAppSecret, not derived tokens.Invoke-OrchApiremoves the need for this pattern in nearly all cases.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Contributions are welcome! See CONTRIBUTING.md for guidelines.
Important: This is a community-driven tool and is not officially supported by UiPath Technical Support. For issues related to this module, please use the channels below instead of contacting UiPath Technical Support.
For support and questions, you can reach out through any of these channels:
- UiPath Marketplace Q&A: Ask questions on the Marketplace listing
- GitHub Discussions: Start a discussion for general questions and ideas
- GitHub Issues: Report bugs or request features
- UiPath Community Forum: Get help from the community
Internal Labs - UiPath
Note: Please test in non-production environments before use in production.