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.12.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.12.0
 
Local users whose userName differs from -- or exists without -- an email now migrate and manage
correctly across editions.
 
Added: Copy-PmUser preserves a local user's source userName on Automation Suite / on-premises
(which identify a user by userName) instead of overwriting it with the email, and keeps the
historical email-as-userName on Automation Cloud, where sign-in is by email. A -UserMappingCsv
entry overrides either default and is now keyed by the source userName like the sibling copy
cmdlets (older email-keyed sheets still work; userName is tried first, then email). Copy-PmUser
also migrates email-less users to Automation Suite / on-premises instead of skipping them; an
email-less user bound for Automation Cloud is still skipped -- it could not sign in there -- now
with a warning that says how to give it an email.
 
Added: New-PmUser -UserName can differ from -Email, so a local user keeps a userName distinct
from its email on Automation Suite / on-premises. Either parameter alone still yields
userName == email, backward compatible with the former single-parameter behaviour.
 
Added: Update-PmUser -NewEmail changes or adds a user's email; an email can be added to a
userName-only account (verified on Automation Suite / on-premises v13-v17). The selection must
resolve to exactly one user.
 
Added: Get-PmUser -ExportCsv now writes a UserName column so a userName that differs from the
email survives an export/import round trip, and -UserName (alias of -Email) matches on either
the userName or the email across Get-PmUser, Update-PmUser and Copy-PmUser.
 
Added: Invoke-OrchApi refuses a -Uri that still carries a placeholder it cannot fill. The drive
supplies {partitionGlobalId} and {projectId} from its context; any other -- {token}, {id},
{objectType}, ... -- is a value only you have, and sent literally would only come back a 404, so
the request is refused with the list to fill. The -Uri completion tooltip flags the same manual
ids.
 
Fixed: Copy-PmUser -UserMappingCsv reported a generic "Error reading the CSV file" that hid the
real cause (most often the wrong header -- the CSV needs a SourceUserName column). The underlying
reason is now surfaced.
 
Changed: the migration guide (docs/50-MigrationGuide.md) was restructured around a choose-your-path
selector and an identity-scenario matrix (source x destination directory integration), and
documents the local-user handling above, including the AD-integrated-source to AD-less-destination
(directory to local) recreation procedure.
 
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.
 
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 = ''

}