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.15.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.15.0 Added: "UseProxy": false in a drive's Proxy block now connects directly, ignoring whatever proxy the machine is configured with. There was no way to say that before. "Enabled": false means "do not use the settings in this block", which leaves .NET free to fall back to the machine's proxy -- and "Enabled": false is what the shipped configuration template contains, so nearly every user has been inheriting a proxy their configuration never mentioned. Absent behaves as .NET's own default of true, so no existing configuration changes behaviour, and "UseProxy": false takes precedence over "Enabled". Security: the PKCE sign-in now sends and verifies a state value. The loopback listener accepted any callback carrying a code and exchanged it. PKCE protects a code stolen from us from being used by someone else; it does nothing about someone else's code being delivered into our listener, which ends with the drive authenticated as them -- the direction RFC 8252 requires state for. A callback whose state is missing or different is now refused before the token exchange, since exchanging first would already have put a token for the wrong principal in the session. The refusal explains the likeliest cause, another sign-in sharing the redirect port, rather than leading with an attack. Verified on standalone 24.10.0, Automation Cloud, and Automation Suite 24.10.11. Fixed: the sign-in page no longer says you are connected when the token exchange failed. The browser callback exchanges the sign-in for a token; when that exchange fails the error is left for the caller to raise, but the page went on rendering the success card, announcing a connection that does not exist, with only a missing user-name row as a hint. That page is the one signal an operator has at that moment and it pointed the wrong way. It now says the sign-in worked but the connection did not, and shows the underlying error. Changed: a connection failure now names the proxy it went through and where that proxy came from. UiPathOrch only overrides proxy settings when a drive enables them; otherwise the machine's own proxy applies, so a request can go through a proxy the drive's configuration never mentions -- and when it failed, the error named only an address it could not reach. Reported from the field as "Could not connect to 127.0.0.1:10000", read reasonably as a port UiPathOrch wanted to listen on, when in fact it was a local proxy agent. When the proxy was inherited rather than configured, the message also says how to refuse it, and the sign-in page additionally shows the Proxy block itself. Changed: sign-in advisories now appear on the browser page when the sign-in opened a browser, and are not repeated on the console. The console has only ever been the fallback channel. A notice with something to act on still leaves a one-line trace there, because the page is invisible to a scheduled run, a transcript, or a session driven by an agent. Changed: the Entra ID local-user advisory is decided at sign-in rather than two hops later, is shown in the reader's language, matching Orchestrator's own banner wording in each of the seven languages the module ships, and carries the "Learn more" link the web banner ends with. 1.14.1 Changed: a destination tenant set to "Only host feed" no longer blocks a library copy. Copy-Item and Copy-OrchLibrary read the destination's library feed scope before copying and, when it was Host, aborted the whole run. Measured on standalone 24.10.0, that refused a copy the server accepts: with the destination on "Only host feed" the upload succeeds and the package lands in the host feed. The copy is now attempted and the server's answer stands, with the feed setting appended to the error only when an upload actually failed. The old guard also returned out of the whole run on the first Host-scoped destination, losing the destinations that would have worked. Two caveats are documented rather than pre-empted: Automation Suite was not measured, so confirm where the first library lands before running a full set; and the write is one-way, because the same server refuses a tenant-context delete of a host-feed package, so removing what you copied in needs host administration. Changed: Copy-Item -Recurse now says when a folder's event triggers are being left behind. They are carried by none of the copy stages and there is no Copy-OrchEventTrigger, because an event trigger points at an Integration Service connection whose id differs at the destination and a connection cannot be created through an API at all. The omission was silent, so a migration lost them with no error, no warning and no line in -WhatIf, and the first signal was a process that never started in the new tenant. A copy now warns once per folder with the count, and -WhatIf reports it too. Nothing about what is copied has changed. Fixed: Get-OrchLibrary -HostFeed and Get-OrchLibraryVersion -HostFeed went stale after a feed-scope change, and on one tenant configuration could have answered with the tenant feed. The host feed id was memoized in a private field with no reset path, so Clear-OrchCache did not flush it and -HostFeed kept using the previous id, failing with "PackageFeed does not exist." It now reads through the per-tenant feed cache, which Clear-OrchCache does flush. Separately, a tenant scoped to "Only tenant feed" reports a single non-shared feed, leaving the host feed id null -- and null means "no feed id" to the underlying query, that is, the tenant's own feed. That path now reports that the tenant has no host feed, and which setting controls it. Fixed: RateLimiter.Dispose could leave an in-flight timer callback holding a disposed semaphore. Timer.Dispose() returns immediately, so a refill callback already running could reach the semaphore after it had been disposed, raising an unobserved exception on a thread-pool thread. Teardown now waits for the callback before disposing the semaphore. This is reached only at session teardown, and the wait is one callback long. 1.14.0 Fixed: copying an entity shared between two top-level folders to another tenant lost the link and created two independent entities. The copy finds the destination counterpart of a linked folder by rebasing its fully-qualified name around the folder being copied, and it looked for the deepest "/" boundary the two names share -- but two top-level folders share only the tenant root, whose fully-qualified name is empty and therefore carries no "/". Every link between root-level folders, the most common Orchestrator layout, was silently abandoned in both directions and the entity was copied into each folder instead of being linked once. The tenant root is now treated as the common ancestor it is, so the source's own folder tree is mirrored onto the destination. Changed: copying a linked entity within one tenant now always creates an independent entity, and says so. Sharing an existing entity with another folder is the job of Add-OrchAssetLink and its queue and bucket siblings -- one call -- whereas a copy that linked instead of copying left no way to ask for a plain copy. Two drives mounted on the same tenant count as one. The warning appears under -WhatIf too. A cross-tenant copy that could not reproduce a link now reports that as well, at the end of the run rather than at the moment of the miss: in a folder-tree copy the counterpart folder is often only filled by a later folder's pass, which then links the entity. Changed: a tenant whose Test Automation module has been discontinued no longer produces one error per folder during Copy-Item -Recurse. The copy now says so once per drive, skips test sets and test schedules, and copies everything else as usual; Clear-OrchCache re-probes. Changed: removing an asset, queue or bucket that is linked into other folders now says that it was only unlinked. A delete addressed to a folder removes that folder's share of the entity; the entity -- with its value, items or files -- survives in the remaining folders under the same id, and dies only with the last folder that holds it. That is Orchestrator's own behaviour, the web UI offering "remove from folder" separately from "delete", but the cmdlets reported nothing and the folder you were looking at is empty afterwards, so the removal read as a delete while the entity was still live elsewhere. Remove-OrchAsset, Remove-OrchQueue and Remove-OrchBucket now name the folders that still hold it, under -WhatIf as well, and the folder-deletion prompt no longer claims to remove all of a folder's contents. 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 = '' } |