UiPathOrch.psd1

#
# Module manifest for module 'UiPathOrch'
#
# Generated by: Yoshifumi Tsuda
#
# Generated on: 2023/08/28
#

@{

# Script module or binary module file associated with this manifest.
RootModule = 'UiPathOrch.dll'

# Version number of this module.
ModuleVersion = '1.11.7'

# Supported PSEditions
CompatiblePSEditions = @('Core')

# ID used to uniquely identify this module
GUID = '7098583d-d092-4fe9-bf36-a652e7a51efb'

# Author of this module
Author = 'Yoshifumi Tsuda'

# Company or vendor of this module
CompanyName = 'UiPath'

# Copyright statement for this module
Copyright = 'Copyright 2023-2026 UiPath'

# Description of the functionality provided by this module
Description = 'Open-source PSDrives and cmdlets for managing UiPath Orchestrator. Not an official abbreviation of, or part of, the Orchestrator product. 💡 First time? Run: Get-OrchHelp'

# Minimum version of the PowerShell engine required by this module
PowerShellVersion = '7.4.2'

# Name of the PowerShell host required by this module
# PowerShellHostName = ''

# Minimum version of the PowerShell host required by this module
# PowerShellHostVersion = ''

# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
# DotNetFrameworkVersion = ''

# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
# ClrVersion = ''

# Processor architecture (None, X86, Amd64) required by this module
# ProcessorArchitecture = ''

# Modules that must be imported into the global environment prior to importing this module
# RequiredModules = @()

# Assemblies that must be loaded prior to importing this module
# RequiredAssemblies = @()

# Script files (.ps1) that are run in the caller's environment prior to importing this module.
# ScriptsToProcess = @()

# Type files (.ps1xml) to be loaded when importing this module
# TypesToProcess = @()

# Format files (.ps1xml) to be loaded when importing this module
FormatsToProcess = @('UiPathOrch.Format.ps1xml')

# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess
NestedModules = @('UiPathOrch.psm1')

# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
FunctionsToExport = @(
'Enable-OrchUserAttended',
'Disable-OrchUserAttended',
'Enable-OrchPersonalWorkspace',
'Disable-OrchPersonalWorkspace',
'Find-OrchFolderNoUserAssigned',
'Get-OrchJobVideo',
'Format-OrchQueueItem',
'Format-OrchTestDataQueueItem'
)

# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
CmdletsToExport = @(
'Import-OrchConfig',
'New-OrchPSDrive',
'Invoke-OrchApi',
'Switch-OrchCurrentUser',
'Get-OrchPSDrive',
'Get-OrchProductVersion',
'Resolve-OrchAuthError',

'Get-OrchLibrary',
'Get-OrchLibraryVersion',
'Remove-OrchLibrary',
'Import-OrchLibrary',
'Export-OrchLibrary',
'Copy-OrchLibrary',

'Get-OrchPackage',
'Copy-OrchPackage',
'Get-OrchPackageVersion',
'Remove-OrchPackage',
'Import-OrchPackage',
'Export-OrchPackage',

'Get-OrchJob',
'Start-OrchJob',
'Stop-OrchJob',
'Restart-OrchJob',
'Resume-OrchJob',
'Open-OrchJob',

'Get-OrchLog',
'Get-OrchAuditLog',

'Get-OrchJobMedia',
'Export-OrchJobMedia',
'Remove-OrchJobMedia',

'Get-OrchProcess',
'Get-OrchProcessDetail',
'New-OrchProcess',
'Update-OrchProcess',
'Copy-OrchProcess',
'Compare-OrchProcess',
'Remove-OrchProcess',
'Edit-OrchProcess',
'Update-OrchProcessVersion',
'Reset-OrchProcessVersion',
'Get-OrchProcessRequirement',

'Get-OrchRobot',

'Get-OrchUser',
'Compare-OrchUser',
'Get-OrchUserDetail',
'Get-OrchUserPrivilege',
'Add-OrchUser',
'Update-OrchUser',
'Copy-OrchUser',
'Remove-OrchUser',
'Remove-OrchRoleFromUser',
'Get-OrchCurrentUser',
'Update-OrchCurrentUserURPassword',

'Get-OrchLicenseNamedUser',
'Get-OrchLicenseRuntime',
'Enable-OrchLicenseRuntime',
'Disable-OrchLicenseRuntime',

'Get-PmAuditLog',
'Get-PmAuthenticationSetting',

'Get-PmLicense',
'Get-PmLicenseAllocation',
'Get-PmLicenseInventory',
'Get-PmLicenseContract',

'Get-PmGroupLicense',
'Add-PmGroupLicense',
'Remove-PmGroupLicense',
'Remove-PmGroupLicenseAllocation',
'Remove-PmLicensedGroup',

'Get-PmUserLicense',
'Add-PmUserLicense',
'Remove-PmUserLicense',
'Remove-PmLicensedUser',

'Get-OrchClassicRobot',
'Get-OrchClassicEnvironment',

'Get-OrchUserSession',
'Get-OrchMachineSession',
'Get-OrchUnattendedSession',
'Clear-OrchInactiveSession',

'Get-OrchTask',
'Get-OrchTaskAcrossFolder',
'Set-OrchTask',
'Remove-OrchTask',

'Enable-OrchMaintenanceMode',
'Disable-OrchMaintenanceMode',

'Get-OrchJobStats',
'Get-OrchLicenseStats',

'Get-OrchRole',
'Set-OrchRole',
'Remove-OrchRole',
'Copy-OrchRole',
'Compare-OrchRole',

'Get-OrchCalendar',
'Remove-OrchCalendar',
'Copy-OrchCalendar',
'Compare-OrchCalendar',

'Get-OrchCalendarDate',
'Add-OrchCalendarDate',
'Remove-OrchCalendarDate',

'Get-OrchPersonalWorkspace',
'Remove-OrchPersonalWorkspace',
'Get-OrchFolderUsage',

'Get-OrchFolderUser',
'Compare-OrchFolderUser',
'Add-OrchFolderUser',
'Copy-OrchFolderUser',
'Move-OrchFolderUser',
'Remove-OrchFolderUser',

'Add-OrchRoleToFolderUser',
'Remove-OrchRoleFromFolderUser',

'Get-OrchMachine',
'Update-OrchMachine',
'New-OrchMachine',
'Remove-OrchMachine',
'Copy-OrchMachine',
'Compare-OrchMachine',
'Get-OrchMachineClientSecretId',
'Add-OrchMachineClientSecret',
'Remove-OrchMachineClientSecret',

'Get-OrchFolderMachine',
'Compare-OrchFolderMachine',
'Add-OrchFolderMachine',
'Copy-OrchFolderMachine',
'Remove-OrchFolderMachine',
'Enable-OrchFolderMachineInherit',
'Disable-OrchFolderMachineInherit',

'Get-OrchFolderMachineAccountMapping',
'Enable-OrchFolderMachineAccountMapping',
'Disable-OrchFolderMachineAccountMapping',

'Get-OrchAsset',
'Set-OrchAsset',
'Copy-OrchAsset',
'Compare-OrchAsset',
'Move-OrchAsset',
'Remove-OrchAsset',

'Set-OrchCredentialAsset',
'Get-OrchCredentialAsset',

'Set-OrchSecretAsset',
'Get-OrchSecretAsset',

'Remove-OrchAssetUserValue',

'Get-OrchCredentialStore',
'Copy-OrchCredentialStore',
'Compare-OrchCredentialStore',
'Update-OrchCredentialStore',
'Remove-OrchCredentialStore',

'Get-OrchAssetLink',
'Add-OrchAssetLink',
'Remove-OrchAssetLink',

'Get-OrchBucketLink',
'Add-OrchBucketLink',
'Remove-OrchBucketLink',

'Get-OrchQueueLink',
'Add-OrchQueueLink',
'Remove-OrchQueueLink',

'Get-OrchTrigger',
'Get-OrchTriggerDetail',
'New-OrchTrigger',
'Update-OrchTrigger',
'Remove-OrchTrigger',
'Copy-OrchTrigger',
'Compare-OrchTrigger',
'Enable-OrchTrigger',
'Disable-OrchTrigger',
'Test-OrchTrigger',

'Get-OrchApiTrigger',
'New-OrchApiTrigger',
'Update-OrchApiTrigger',
'Remove-OrchApiTrigger',
'Copy-OrchApiTrigger',
'Compare-OrchApiTrigger',
'Enable-OrchApiTrigger',
'Disable-OrchApiTrigger',

'Get-OrchEventTrigger',
'Compare-OrchEventTrigger',
'Remove-OrchEventTrigger',
'Enable-OrchEventTrigger',
'Disable-OrchEventTrigger',

'Get-OrchQueue',
'New-OrchQueue',
'Update-OrchQueue',
'Copy-OrchQueue',
'Compare-OrchQueue',
'Move-OrchQueue',
'Remove-OrchQueue',

'Get-OrchQueueItem',
'Import-OrchQueueItem',
'Redo-OrchQueueItem',
'Copy-OrchQueueItem',
'Remove-OrchQueueItem',

'Get-OrchTestSet',
'Compare-OrchTestSet',
'Get-OrchTestSetDetail',
'New-OrchTestSet',
'Copy-OrchTestSet',
'Remove-OrchTestSet',
'Start-OrchTestSet',

'Get-OrchTestCase',
'Get-OrchTestCaseExecution',
'Get-OrchTestCaseAssertion',
'Remove-OrchTestCase',

'Get-OrchTestSetExecution',
'Stop-OrchTestSetExecution',

'Get-OrchTestSetSchedule',
'Compare-OrchTestSetSchedule',
'New-OrchTestSetSchedule',
'Update-OrchTestSetSchedule',
'Copy-OrchTestSetSchedule',
'Remove-OrchTestSetSchedule',
'Enable-OrchTestSetSchedule',
'Disable-OrchTestSetSchedule',

'Get-OrchTestDataQueue',
'Compare-OrchTestDataQueue',
'New-OrchTestDataQueue',
'Copy-OrchTestDataQueue',
'Remove-OrchTestDataQueue',

'Get-OrchTestDataQueueItem',
'Import-OrchTestDataQueueItem',
'Reset-OrchTestDataQueueItem',

'Get-OrchAlert',

'Get-OrchBucket',
'New-OrchBucket',
'Copy-OrchBucket',
'Compare-OrchBucket',
'Move-OrchBucket',
'Update-OrchBucket',
'Remove-OrchBucket',

'Get-OrchBucketItem',
'Copy-OrchBucketItem',
'Export-OrchBucketItem',
'Import-OrchBucketItem',
'Remove-OrchBucketItem',

'Get-OrchWebhook',
'New-OrchWebhook',
'Copy-OrchWebhook',
'Compare-OrchWebhook',
'Update-OrchWebhook',
'Remove-OrchWebhook',
'Enable-OrchWebhook',
'Disable-OrchWebhook',
'Get-OrchWebhookEventType',
'Test-OrchWebhook',

'Get-OrchSetting',
'Set-OrchSetting',
'Get-OrchExecutionSetting',
'Get-OrchWebSetting',
'Get-OrchAuthenticationSetting',
'Get-OrchActivitySetting',
'Get-OrchConnectionString',
'Get-OrchLicense',
'Get-OrchUpdateSetting',

'Get-OrchActionCatalog',
'Compare-OrchActionCatalog',
'New-OrchActionCatalog',
'Copy-OrchActionCatalog',
'Remove-OrchActionCatalog',

'Search-OrchDirectory',
'Search-PmDirectory',
'Resolve-PmDirectoryNameBulk',

'Get-PmUser',
'Update-PmUser',
'Remove-PmUser',
'New-PmUser',
'Copy-PmUser',

'Get-PmRobotAccount',
'New-PmRobotAccount',
'Set-PmRobotAccount',
'Copy-PmRobotAccount',
'Remove-PmRobotAccount',

'Get-PmUserPreference',
'Set-PmUserPreference',
'Copy-PmUserPreference',
'Get-PmNotificationSubscription',
'Set-PmNotificationSubscription',
'Copy-PmNotificationSubscription',

'Get-PmGroup',
'New-PmGroup',
'Copy-PmGroup',
'Remove-PmGroup',

'Get-PmGroupMember',
'Add-PmGroupMember',
'Move-PmGroupMember',
'Remove-PmGroupMember',

'Get-PmExternalApiResource',
'Get-PmExternalApplication',
'Copy-PmExternalApplication',
'Remove-PmExternalApplication',

'Get-PmAccessAllowedMember',

'Get-DuRole',
'Get-DuDocumentType',
'Get-DuClassifier',
'Get-DuExtractor',

'Get-DuUser',
'Add-DuUser',
'Remove-DuRoleFromDuUser',

'Get-TmConfiguration',
'Get-TmProjectSetting',
'Get-TmProjectPermission',
'Get-TmServerInfo',

'Get-TmRequirement',
'Remove-TmRequirement',

'Get-TmTestCase',
'Remove-TmTestCase',

'Get-TmTestSet',
'Remove-TmTestSet',

'Get-TmTestExecution',

'Get-OrchHelp',
'Clear-OrchCache',
'Get-OrchConfigPath',
'Edit-OrchConfig',
'Set-OrchLocation',
'Get-OrchLogLocation',
'Open-OrchLogLocation',

'New-OrchUserMappingCsv',
'Test-OrchUserMappingCsv'
)

# Variables to export from this module
VariablesToExport = @()

# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export.
AliasesToExport = @('!Show-OrchGuide')

# DSC resources to export from this module
# DscResourcesToExport = @()

# List of all modules packaged with this module
# ModuleList = @()

# List of all files packaged with this module
# FileList = @()

# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell.
PrivateData = @{

    PSData = @{

        # Tags applied to this module. These help with module discovery in online galleries.
        Tags = @('UiPath', 'Orchestrator', 'RPA', 'Automation', 'PSDrive', 'PSProvider', 'Cloud', 'OnPremises')

        # A URL to the license for this module.
        LicenseUri = 'https://github.com/UiPath-Services/UiPathOrch/blob/master/LICENSE'

        # A URL to the main website for this project.
        ProjectUri = 'https://github.com/UiPath-Services/UiPathOrch'

        # A URL to an icon representing this module.
        # IconUri = ''

        # ReleaseNotes of this module.
        # Single-quoted here-string (@'...'@) so apostrophes (e.g. "task's") inside the
        # body don't have to be doubled. The closing '@ MUST be at column 0 (no leading
        # whitespace) — that's the only termination rule.
        ReleaseNotes = @'
1.11.7
 
Added: Invoke-OrchApi -Uri now tab-completes the known API endpoints -- 873 of them, from a
catalog generated out of UiPath's swagger documents (Orchestrator, Identity, Portal, Test
Manager, Document Understanding, AI Center), with each endpoint's HTTP verbs and summary in
the tooltip. The candidates are filtered to the target tenant: an Orchestrator endpoint is
offered only if the tenant's Web API version actually has it, so an old on-prem tenant is
never shown an endpoint it cannot serve. -Identity / -Portal select their own endpoint sets
and -Method narrows to the endpoints serving that verb. Ids the drive context knows are
substituted into the completed URI -- {partitionGlobalId}, and {projectId} when the location
is a Document Understanding or Test Manager project -- so the completion is ready to send.
An id that cannot be resolved without an API call is left as its placeholder, with the
tooltip naming the -Path that would fill it; completion never triggers a sign-in.
 
Added: Invoke-OrchApi now runs from a Document Understanding or Test Manager drive, which it
used to reject. A DU/TM drive is a view onto the same tenant, so the call runs against its
parent Orchestrator drive's authentication and base URLs, with the project the location
points at supplying {projectId}: cd Orch1Tm:\MyProject, then
Invoke-OrchApi -Uri '/testmanager_/api/v2/{projectId}/testcases'. Orchestrator, Identity and
Portal endpoints remain reachable from there too. Placeholders are filled by the cmdlet as
well as by tab completion, so a template pasted from the swagger docs runs as written, and a
{projectId} the context cannot supply is refused with the -Path that would supply it rather
than sent as a literal.
 
Fixed: Get-PmGroupLicense -ExportCsv produced a CSV that could not be re-imported. A dangling
license allocation -- a group deleted from the directory that still holds a bundle -- comes back
with an empty name, and was exported as a row with an empty GroupName, which Add-PmGroupLicense
then refused ("Cannot bind argument to parameter 'GroupName' because it is an empty string"). One
such allocation broke the whole export/import round trip. Orphans are now left out of the export,
as they already were for users; Get-PmGroupLicense still emits them as objects.
 
Fixed: New-PSDrive -PSProvider UiPathOrchDu / UiPathOrchTm crashed with an InvalidCastException,
so the configuration file was the only way a Document Understanding or Test Manager drive could
exist. The provider now builds its typed drive from the one the engine passes. A DU/TM drive also
links to its parent Orchestrator drive regardless of which provider PowerShell initialized first
(the parent is resolved by name on first use), and a drive whose parent is genuinely absent now
reports that instead of throwing a NullReferenceException.
 
Fixed: Enable-OrchUserAttended, Disable-OrchUserAttended, Enable-OrchPersonalWorkspace and
Disable-OrchPersonalWorkspace could not be invoked at all -- every call failed with "Multiple
ambiguous overloads found for .ctor", their -UserName / -Path tab completion fell back to
file-system paths, and Get-Help on them failed. These four are PowerShell functions rather
than compiled cmdlets, and their [ArgumentCompleter([...])] attributes still named a completer
shape that no longer exists (a generic completer with a type argument that had been removed).
A compiled typeof() would not have built; a PowerShell type literal resolves only at run time,
so the break shipped unnoticed. The attributes now name the real completers, and a unit test
checks every completer a shipped function names against the assembly.
 
Fixed: tab completion on a Document Understanding or Test Manager drive offered unusable
paths. `cd `<Ctrl+Space> at Orch1Du:\ completed to ".\Orch1Du:\MyProject" -- a ".\" prefix
glued onto the full drive-qualified path -- instead of ".\MyProject". The DU/TM providers
had taken the drive-root re-rooting that PSParentPath and the dir "Directory:" header need,
without the path relativization that has to accompany it; both halves now live in one shared
place that all three providers call.
 
1.11.6
 
Fixed: Per-user asset values now honor folder access granted through an assigned
directory group or tenant role. Set-OrchAsset, Set-OrchCredentialAsset, Set-OrchSecretAsset
and Copy-OrchAsset used to require the -UserName account to be directly assigned to the
target folder, and rejected it as "not assigned" (or dropped the copied per-user value)
whenever the account only reached the folder through a group or a tenant role. The
client-side folder-scope check has been removed: the cmdlets now resolve -UserName against
the tenant user list and let Orchestrator decide, which accepts a per-user value for any
existing tenant user regardless of direct folder assignment. A directory user who is not
yet a tenant user still cannot be referenced -- add them to the destination first with
Add-OrchFolderUser / Copy-OrchFolderUser (as you would copy a package before a process),
then re-run.
 
Changed: Set-OrchCredentialAsset now warns instead of silently skipping when a new
credential asset is requested without a password. A credential asset cannot exist without
a secret (a password, or an ExternalName that references a credential store), so a create
request that supplies neither is skipped with a clear warning instead of no output at all,
which also surfaces a mistyped or since-deleted asset name in a bulk-update CSV. Updating
an existing credential is unchanged.
 
1.11.5
 
Fixed: Get-PmGroupLicense -ExpandAllocation no longer stops at 50 members. The Automation Cloud
license allocations endpoint now caps each page at 50, and the cmdlet was treating that short page
as the last one, so a group with more than 50 licensed members was truncated to 50 (a group with 50
or fewer looked fine, which made it seem intermittent); it now pages through all of them. The
Automation-Cloud-only licensing cmdlets (Get-PmGroupLicense / Get-PmUserLicense / Get-PmLicense /
Get-PmLicenseAllocation / Get-PmLicenseContract / Get-PmLicenseInventory) also report a clear
"available only on Automation Cloud" message when run against on-prem Orchestrator, instead of a
cryptic "'<' is an invalid start of a value" JSON parse error. Subfolders that a solution deploy
creates inside a personal workspace are visible again to dir / cd / Get-Item / wildcard resolution /
Remove-Item — Orchestrator stopped returning them from /odata/Folders, so the folder catalog now
grafts them in from /api/Folders/GetAllForCurrentUser. That navigation endpoint is paged (take is
capped at 1000), so it is now read page by page until its Count total is reached — a tenant with
more folders than one page no longer drops the tail. And under -Recurse a personal workspace's
subfolders now group right after the workspace instead of sorting in among every other folder by
name — for dir -Recurse and for the entity cmdlets that walk EnumFolders (Get-OrchAsset -Recurse,
etc.), so e.g. a workspace subfolder's assets list right after the workspace's own.
 
1.11.4
 
Added: New-OrchUserMappingCsv now also enumerates robot accounts — robot rows resolve against the
destination tenant user list (same-named robots auto-fill, renamed ones stay empty for manual
mapping), carry "robot" in the SourceSource column, and the CSV lists directory users first, then
robots. Test-OrchUserMappingCsv checks tenant-user reachability first (which validates robot rows
correctly), reports directory-only entries once as an aggregated Pending warning instead of per-row
noise, and shows a per-entry progress bar.
 
Fixed: folder-assignment checks and listings now read the union of GetUsersForFolder's
includeInherited true/false forms — in one customer Automation Cloud environment the true form
omitted a directly-assigned robot account, so the asset copy dropped its per-user values as
"not assigned" and skipped per-user-only assets entirely; Set-OrchAsset / Set-OrchCredentialAsset /
Set-OrchSecretAsset -UserName, name completion, and Get-OrchFolderUser -IncludeInherited read the
same view and are all fixed by the union. User-mapping CSV lookups are no longer case-sensitive on
SourceUserName, and the "not assigned" drop warning's example command now uses the source user name.
Cmdlets that need an endpoint the connected Orchestrator predates now report that instead of a bare
Not Found, and every Orchestrator-version gate now carries live measurements (20.10.16 through
25.10.2 plus Automation Cloud).
 
1.11.3
 
Added: Test-OrchUserMappingCsv now also verifies each DestinationUserName is reachable as a destination
tenant user, not just resolvable in the destination directory — a mapping that only resolved at
directory level validated clean and then dropped every per-user asset value at copy time; such entries
now warn up front. Asset copies now end with a one-line drop summary listing the distinct users /
machines that failed to resolve, even after per-value warnings hit the throttle; the "does not have
user with Name" warning is throttled through the same budget and its users are included in the summary.
 
Full release notes: https://github.com/UiPath-Services/UiPathOrch/blob/master/CHANGELOG.md
'@


        # Prerelease string of this module
        # Prerelease = ''

        # Flag to indicate whether the module requires explicit user acceptance for install/update/save
        # RequireLicenseAcceptance = $false

        # External dependent modules of this module
        # ExternalModuleDependencies = @()

    } # End of PSData hashtable

} # End of PrivateData hashtable

# HelpInfo URI of this module
# HelpInfoURI = ''

# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix.
# DefaultCommandPrefix = ''

}