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.17.0'

# 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.17.0
 
With the August 3, 2026 Automation Cloud release, UiPath made OpenAPI 3.0 the Orchestrator API
description: /orchestrator_/openapi/public.json is now the default, and the Swagger 2.0 document
(/swagger/v20.0/swagger.json) is deprecated from that release and removed in September 2026
(Automation Suite: 2.2610). The OpenAPI document still describes Web API 20.0, yet it differs from
the October 2025 snapshot of the v20 swagger, and this release follows it where the change is
visible to the module. Every change leaves a drive on Web API 11-19 doing exactly what it did:
new fields are stripped before a write to such a server, new parameters are refused there with a
message naming the version, and the notices stay silent.
 
Added: Set-OrchAsset -ValueType Json creates and updates the Json asset type the v20 document
introduced. -Value is the JSON text, checked for well-formedness before anything is sent; the
server echoes it in Value, so Get-OrchAsset, its CSV export and the CSV round-trip need nothing
new. A drive below v20 refuses the type with a message naming the drive and its version.
 
Added: Stop-OrchJob -BatchExecutionKey stops every job of one Start-OrchJob batch in a single
request, and Get-OrchTaskAcrossFolder -JobKey narrows the cross-folder task list to the tasks one
job raised (the value is the job's Key, as Get-OrchLog -JobKey already takes it, with the same tab
completion). Both need v20.
 
Added: the entities carry the fields the v20 document added (Machine.FunctionSlots and
MachineSettings, Release.RuntimeProfile, Job.FolderKey / TargetRuntime / CreatorUser, the
trigger's BindingKey, Asset.ValueJsonSchema and a few read-only ones); writes below v20 strip them.
 
Changed: Invoke-OrchApi -Uri completion follows the OpenAPI document. The 14 endpoints it adds
(GetByKey on Jobs, Releases, Buckets and Users, GetProcessVersion, /api/Assets/name/{name}/value,
the VideoRecording API) are offered on v20 tenants; the 13 it dropped (the classic-robot
/odata/Robots({key}) family, ToggleEnabledStatus, /odata/OrganizationUnits, ...) are no longer
offered there and stay offered on v11-v19 drives, where they still exist.
 
Changed: user and test-set reads no longer $expand the classic-folder navigations
OrganizationUnits and Environment on v20, where the document dropped them -- the way
ReleaseDto.Environment went before, which a 26.3 server already refuses. v20 has no classic
folders, so nothing is lost.
 
Changed: the Test* cmdlets say once per drive that Orchestrator has deprecated its Test
Automation API in favour of Test Manager. They keep working; Clear-OrchCache resets the notice.
 
1.16.1
 
Fixed: a flag the source Orchestrator is too old to have is no longer a difference. An Orchestrator
that predates a boolean field returns null for it; a newer one returns the field's default, so a
comparison across the two reported every such field -- "RetryAbandonedItems: (null) => 'False'" on
a queue that had copied perfectly, from the same MSI-to-Automation-Suite migration as 1.16.0. For a
bool both values mean "not enabled", so null is now compared as false across the whole
Compare-Orch* family. null against TRUE stays a difference: that is the feature switched on at one
end. Bool only -- a null number against 0 may mean "absent" but against a non-zero default it does
not, and telling those apart needs each field's own default rather than one rule.
 
1.16.0
 
Added: the whole Compare-Orch* family takes -ExportCsv (and -CsvEncoding), like the Get-Orch*
family already did. A comparison is the evidence a migration produced, and the documented way to
keep it was to pipe the output into Export-Csv -- exactly the pipeline that lost the Differences
column (below). The six columns are the ones the console shows (SideIndicator, Name,
DifferenceName, Path, DifferencePath, Differences), in the order the piped export already
produced them; ReferenceObject and DifferenceObject are left out. Naming a directory writes
Compared<Nouns>.csv in it.
 
Fixed: Compare-Orch* piped to Export-Csv wrote the type of the differences instead of the
differences. The Differences column arrived as the List type name, so the exported file recorded
which entities differed and nothing about how -- the one thing the console had just shown.
Export-Csv converts each property with ToString(), and a bare list answers with its type name;
the column now carries the same "Prop: 'ref' => 'diff'" text the console does. The console view
and ConvertTo-Json are unchanged. ReferenceObject and DifferenceObject are whole entities kept
for downstream piping and still export as their type name; add
Select-Object -ExcludeProperty ReferenceObject, DifferenceObject before the export to drop them.
 
Fixed: Remove-OrchAssetUserValue -WhatIf showed only the first matching asset and stopped. The
confirmation loop ran per user value and answered a declined one with `return`, from inside the
folder and asset loops, so it left the whole cmdlet -- and ShouldProcess is false for every call
under -WhatIf. Under -Confirm, declining one value abandoned every asset still to come. The prompt
is now per asset and continues to the next one, which is also the granularity the operation has:
the removal is a single PutAsset rewriting that asset's whole UserValues list, so declining one
value removed it anyway along with the rest. The target lists every value being removed, and no
longer prints a bare separator for a value with no machine ("[me@example.com\]" is now
"[me@example.com]").
 
Fixed: an Orchestrator without API triggers no longer fails Copy-Item and Get-OrchApiTrigger with
"Invalid request!". On Automation Suite 24.10.11 /odata/HttpTriggers answers 404 in every folder
while its OData neighbours answer 200, and the web UI there offers only Time and Queue triggers
where Automation Cloud also has Event and API. The tenant simply has no API triggers, and a
-Recurse run was reporting one error per folder for a feature that does not exist, which under
$ErrorActionPreference = 'Stop' aborts the caller. Both cmdlets now take that 404 as the answer,
say so once per drive and skip, the same shape 1.14.0 gave the discontinued Test Automation
module; Clear-OrchCache re-checks. A tenant that does have API triggers is untouched.
 
Fixed: Compare-OrchTrigger no longer reports a queue trigger's cron as a difference. A queue
trigger fires on queue items and the web UI offers it no cron at all; ProcessScheduleDto carries
StartProcessCron for it anyway, and the value belongs to the server. Measured on Automation Cloud
26.3, a queue trigger created with "13 7/29 * 1/1 * ? *" reads back "39 3/30 * * * ? *" and the
next one "40 3/30 * * * ? *"; posting the DTO directly is rewritten the same way, so it is not the
cmdlet. A time trigger's cron survives untouched. It is version-dependent: the same raw POST
against Automation Suite 24.10.11 kept the posted value. So the two sides of a migration can hold
values neither user chose and neither can control -- the reported case, "0 0/30 * 1/1 * ? *" at an
MSI source against "33 20/30 * * * ? *" at an Automation Suite destination. Copy-Item cannot fix
it: it already sends the cron and the destination overrides it. The field is now read as absent on both sides for
a queue trigger, leaving QueueDefinitionName to carry the real difference when only one side is
one. A TIME trigger's cron is compared exactly as before. Skipping it silently would be its own
bug -- an "==" row would assert an equality nothing checked -- so when the two crons actually
differ the cmdlet says so: one notice per run, naming up to five triggers BY PATH and counting the
rest, because with -Recurse a migration repeats one trigger name in every mirrored folder. When
they agree nothing is withheld and nothing is said, unlike the secret-value notice in
Compare-OrchAsset, which must fire on presence alone because a secret's drift is unknowable.
 
Fixed: Compare-OrchTrigger and Compare-OrchProcess no longer report a correctly copied priority
as lost. A destination trigger the web UI correctly showed as Low came back as
"JobPriority: 'Low' => (null)". JobPriority and SpecificPriorityValue are two views of one setting
and the server will not take both -- measured on Automation Suite 24.10, posting the name alone
reads back the name and a filled-in value, posting the value alone reads back a null name, and
posting both is refused with 400 [1009] "Cannot set a specific priority value when a standard job
priority setting is selected". So a copy has to drop one of the pair, and it drops the name,
keeping the higher-resolution value. The destination's null is therefore correct, and JobPriority
is now compared as the name its value resolves to (61 and above High, 30 and below Low, else
Normal -- the cut points Orchestrator itself uses). SpecificPriorityValue is carried across
unchanged and stays compared on its own, so a genuine priority change is still reported.
 
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 = ''

}