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.
- Tenant entities: Manage libraries, packages, assets, queues, triggers, webhooks, and more
- Folder entities: Handle processes, jobs, machines, robots, schedules, and other folder-specific items
- Platform Management: User, group, license, and authentication management
- Document Understanding: Project and queue management
- Test Manager: Test set operations
- PowerShell 7.4.2 or later
- 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 -Online- Manual: Run
Get-OrchHelpor browse theDocsfolder in the module directory - Marketplace: UiPathOrch on UiPath Marketplace
- Cmdlet Help: Use
Get-Help <cmdlet-name>to view OAuth scopes and usage details
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/05-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.