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.13.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.13.0 Added: the configuration file location can now be changed. UiPathOrchConfig.json was fixed to the per-user module folder, so one set of drive definitions could not be kept on a share and used from several machines. The new UIPATHORCH_CONFIG_PATH environment variable relocates it, and Import-OrchConfig -ConfigPath <path> switches files inside a running session by setting that variable for the current process -- nothing is written to the persistent environment. For a standing setup, set the variable in $PROFILE or as a user or system variable, so that it is in place before the module autoloads and mounts its drives. A UNC path is recommended: a mapped drive letter is not visible to services, scheduled tasks, or another logon session. Get-OrchConfigPath reports the file in effect and, with -Verbose, where the location came from. Either the file or the folder holding it may be named. The two are told apart by trying rather than by guessing from the spelling: the path is read as a file first, and as a folder containing UiPathOrchConfig.json only if no file is there. The fallback runs only on not-found, so an unreachable share does not cost a second timeout, and when neither reading answers, the error names both paths. Three behaviours differ once the location is overridden, because that path is typically shared: no template is created there, a parse error does not open the file in an editor, and a file that cannot be read mounts no drives rather than silently falling back to the default file. In the same spirit, an unreadable -ConfigPath is reported as an error rather than a warning, so a script using -ErrorAction Stop stops instead of carrying on against the drives left from the previous config. Reads of the configuration file, at either location, get a bounded 10-second wait, so an unreachable path reports a timeout instead of hanging the first command of the session. This covers the default location too: it is built on the Documents folder, which under enterprise Folder Redirection is routinely a UNC path. Note that the file stores credentials in plain text (AppSecret, Password, personal access tokens) and a share protects it only with its own ACL. Sharing one file between people shares those credentials, and Orchestrator's audit trail then attributes everyone's actions to the same identity. A file intended for several people should define only drives that authenticate interactively, so that it carries connection details and no secrets. 1.12.3 Added: -TimeZoneId now tab-completes on New-OrchTrigger, Update-OrchTrigger and Update-OrchMachine. These bind a Windows time-zone id (Tokyo Standard Time); only their -TimeZone siblings had a completer, so the id parameters offered nothing. They now use the same completer as the test-set-schedule cmdlets, matching on either the id or the display name, and falling back to an embedded Windows table on Linux/macOS -- where the OS zone database is IANA -- so every suggestion is one Orchestrator will accept. The parameters are DontShow, which hides them from parameter-name completion but not from argument completion, so the suggestions appear once the name is typed. Fixed: Resolve-OrchAuthError sent you to the wrong place for unauthorized_client. Requesting an OAuth scope the external application has not been granted surfaces as unauthorized_client, not invalid_scope, on both Automation Cloud and on-premises 22.10. That code had no branch of its own, so it fell through to generic advice declaring the cause server-side and recommending the URL be escalated to UiPath Identity engineering. Both halves are wrong for the commonest cause: the problem is the drive's Scope and it is yours to fix. unauthorized_client now leads with that, and names the property that makes the failure so hard to place -- Identity rejects the entire authorization request rather than the offending scope, and never says which entry it was, so one stray scope blocks sign-in with no clue as to why. invalid_scope gained the same explanation, and the generic branch now suggests checking Scope / AppId / RedirectUrl before proposing escalation. Fixed: an OAuth error on the PKCE callback was indistinguishable from no callback at all. RFC 6749 lets Identity answer a failed authorize request by redirecting to the redirect_uri with ?error= instead of ?code=. The loopback listener read only `code`, so such a callback was ignored and the wait ran on to the full three-minute PKCE timeout, which then reported "no browser callback received" -- the opposite of what happened. The error is now read off the callback and surfaced with its OAuth error code and the server's description, and the browser gets a page saying so instead of hanging. Callbacks carrying neither code nor error (favicon probes, stray requests) are still ignored. Note that neither Automation Cloud nor on-premises 22.10 was observed to redirect errors back this way -- both park the browser on an Identity error page -- so this is conformance for deployments that do redirect, not a cure for the timeout those two produce. 1.12.2 Fixed four independent defects in the drive's HTTP diagnostic log. Fixed: the on-premises username/password sign-in (POST /api/Account/Authenticate) wrote the bearer token to the log in plaintext at Trace/Verbose. That flow returns the token under ABP's `result` key, outside the OAuth2/OIDC vocabulary the redaction set was built from, so it was never masked. Only that one auth endpoint was affected -- Automation Cloud, Automation Suite, PKCE, confidential-app and PAT drives never had the token in the log. If you have shared or archived logs from an on-premises username/password drive at Trace/Verbose, treat those tokens as exposed. Fixed: a transient I/O error silently destroyed log entries. The writer swallowed the exception, reported success, and the entries were discarded -- while the statistics still reported DroppedEntries = 0. A failed write is now retried on the next write, and anything genuinely abandoned (an unwritable path, or a retention cap reached during a long outage) is counted. Fixed: log blocks could be written out of order, because each was handed to the thread pool and forgotten, shuffling the sequence numbers. Blocks are now written inline, in the order produced. Fixed: log directories and files created on Linux/macOS were world-readable -- they inherited the process umask (commonly 0755/0644) while the config file had always been 0600, though the logs hold the same class of secret (request and response bodies at Trace/Verbose and on every error). New log directories are now created 0700 and new log files 0600; paths created by earlier versions keep their existing permissions. Fixed: Set-OrchBucketItem reported an unsupported storage provider as "The method or operation is not implemented." The error now names the verb the provider actually returned and states which uploads are supported; a provider that omitted the verb no longer throws NullReferenceException. Fixed: throttled requests (429/503/504) retried in lockstep on a fixed 500ms/1s/2s backoff, re-creating the burst that tripped the throttle -- the shape produced by the -Recurse fan-outs. The delay is now spread by +/-25%. A server-supplied Retry-After is still honoured exactly as sent. Changed: the log file is held open while a drive is actively logging and released after 5 seconds without a write (writing through an open handle is far cheaper than reopening per entry). While the handle is held, Windows refuses any open declaring FileShare.Read -- Compress-Archive, Get-FileHash, Remove-Item, [IO.File]::ReadAllText. PowerShell's own provider shares read/write, so Get-Content, Get-Content -Wait, Select-String and Copy-Item are unaffected. To zip, hash or delete an active drive's log, pause a few seconds or unmount the drive first; writes made while the file is busy are retained and written once it is free. 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 = '' } |