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.1' # 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.1 Update-Orch* cmdlets now skip the API call when nothing actually changed. The field-level change detection introduced in v0.9.16.1 missed a family of fields (execution settings, roles, unattended-robot, tags, machine robots, retention, entry point, ...) that flipped the dirty flag whenever the parameter was merely present, re-writing the record -- and churning the audit log -- even when the value was unchanged. Each cmdlet's change decision is now a pure, per-field unit-tested core, so a no-op request issues no PUT/PATCH. Reported for Update-OrchUser * -ES_StudioNotifyServer false. Fixed: every partition-scoped Pm* operation failed with InvalidPartition on a newer Automation Cloud org (Get-PmGroup, New-PmUser, Copy-PmUser, ...). The Cloud identity API needs the org-scoped route, but the config's auto-generated host-level IdentityUrl (required for the PKCE authorize endpoint) was clobbering the identity API base. The API base now stays org-scoped on Cloud, while the authorize endpoint and Automation Suite / on-premises are unchanged. Fixed: New-PmUser -UserName with a bare non-address name now creates a userName-only local user (the name was being copied into the email field, which the server rejected). Remove-PmUser -UserName now matches by userName or email, so an email-less user can be removed. Update-OrchWebhook no longer overwrites -Secret with a blank value when an empty string is passed. 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. 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 = '' } |