UiPath Documentation
uipath-cli
latest
false
UiPath CLI user guide

uip or users

Syntax and options for `uip or users`, which manages Orchestrator tenant users and their folder and role assignments.

uip or users manages Orchestrator users at the tenant level. Orchestrator users are backed by Identity Service (IS) — this tool does not create standalone users from scratch. Instead, users import references an existing IS directory principal (a user, group, robot account, or external application) and provisions it into the tenant; users update then edits the tenant-side properties (license, session permissions, unattended credentials) that live on the Orchestrator side. There is no users delete — user removal is managed through Identity Service or the Orchestrator portal, not this CLI. For folder-level role management, see uip or roles.

Synopsis

uip or users list [options]
uip or users list-in-folder [--folder-path <path> | --folder-key <key>] [options]
uip or users list-available [--folder-path <path> | --folder-key <key>] [options]
uip or users get <user-key>
uip or users import (--username <name> | --directory-id <id>) --type <type> [--folder-path <path> | --folder-key <key>] [--role-keys <keys>]
uip or users assign --user-key <key> [--folder-path <path> | --folder-key <key>] [--role-keys <keys>]
uip or users unassign --user-key <key> [--folder-path <path> | --folder-key <key>]
uip or users update <user-key> [options]
uip or users current
uip or users assign-roles <user-key> --role-keys <keys>
uip or users list [options]
uip or users list-in-folder [--folder-path <path> | --folder-key <key>] [options]
uip or users list-available [--folder-path <path> | --folder-key <key>] [options]
uip or users get <user-key>
uip or users import (--username <name> | --directory-id <id>) --type <type> [--folder-path <path> | --folder-key <key>] [--role-keys <keys>]
uip or users assign --user-key <key> [--folder-path <path> | --folder-key <key>] [--role-keys <keys>]
uip or users unassign --user-key <key> [--folder-path <path> | --folder-key <key>]
uip or users update <user-key> [options]
uip or users current
uip or users assign-roles <user-key> --role-keys <keys>

Verbs

VerbPurpose
listList tenant users with optional filters.
list-in-folderList users assigned to a folder, with their folder-level roles.
list-availableList users that can still be assigned to a folder (not yet assigned).
getFetch one user by key.
importImport an existing Identity Service directory principal into the tenant.
assignAssign a user to a folder, optionally with folder-level roles.
unassignRemove a user from a folder.
update (alias edit)Update a user's tenant-side properties (PATCH semantics).
currentReturn details of the currently authenticated user.
assign-rolesReplace a user's tenant-level role assignments.

uip or users list

List users in the tenant. Returns user key (GUID), username, full name, email, type, and active status.

Options

ShortLongValueDefaultDescription
--keyGUIDFilter by user key (exact match).
--usernametextFilter by username (contains match).
--emailtextFilter by email address (contains match).
-l--limitnumber50Page size.
--offsetnumber0Skip count.
--sort-byfieldOData sort (for example, UserName asc).
--all-fieldsflagoffReturn the full API payload instead of the curated summary.

Examples

uip or users list --limit 10
uip or users list --username admin
uip or users list --output-filter 'Data[].{key:Key, name:UserName}'
uip or users list --limit 10
uip or users list --username admin
uip or users list --output-filter 'Data[].{key:Key, name:UserName}'

Data shape (--output json)

{
  "Code": "UserList",
  "Data": [
    {
      "Key": "d4e5f6a7-0000-0000-0000-000000000001",
      "UserName": "admin@example.com",
      "FullName": "Admin User",
      "Email": "admin@example.com",
      "Type": "User",
      "IsActive": true
    }
  ],
  "Pagination": { "Returned": 1, "Limit": 50, "Offset": 0 }
}
{
  "Code": "UserList",
  "Data": [
    {
      "Key": "d4e5f6a7-0000-0000-0000-000000000001",
      "UserName": "admin@example.com",
      "FullName": "Admin User",
      "Email": "admin@example.com",
      "Type": "User",
      "IsActive": true
    }
  ],
  "Pagination": { "Returned": 1, "Limit": 50, "Offset": 0 }
}

uip or users list-in-folder

List users assigned to a folder, with their folder-level roles. Requires --folder-path or --folder-key.

Options

ShortLongValueDefaultDescription
--folder-pathpathTarget folder. Provide this or --folder-key.
--folder-keyGUIDTarget folder. Provide this or --folder-path.
--include-inheritedflagoffAlso show users inherited from parent folders.
-l--limitnumber50Page size.
--offsetnumber0Skip count.
--sort-byfieldId descOData sort.
--all-fieldsflagoffReturn the full API payload instead of the curated summary.

Examples

uip or users list-in-folder --folder-path "Shared"
uip or users list-in-folder --folder-path "Shared" --include-inherited
uip or users list-in-folder --folder-path "Shared" \
    --output-filter 'Data[].{name:UserName, roles:Roles}'
uip or users list-in-folder --folder-path "Shared"
uip or users list-in-folder --folder-path "Shared" --include-inherited
uip or users list-in-folder --folder-path "Shared" \
    --output-filter 'Data[].{name:UserName, roles:Roles}'

Data shape (--output json)

{
  "Code": "UserList",
  "Data": [
    {
      "Key": "d4e5f6a7-0000-0000-0000-000000000001",
      "UserName": "admin@example.com",
      "FullName": "Admin User",
      "Type": "User",
      "IsInherited": false,
      "Roles": "Folder Administrator"
    }
  ]
}
{
  "Code": "UserList",
  "Data": [
    {
      "Key": "d4e5f6a7-0000-0000-0000-000000000001",
      "UserName": "admin@example.com",
      "FullName": "Admin User",
      "Type": "User",
      "IsInherited": false,
      "Roles": "Folder Administrator"
    }
  ]
}

uip or users list-available

List tenant users that can still be assigned to a folder. Use the returned keys with users assign or roles assign.

Options

ShortLongValueDefaultDescription
--folder-pathpathTarget folder. Provide this or --folder-key.
--folder-keyGUIDTarget folder. Provide this or --folder-path.
-s--searchtextFilter by username (contains match).
-l--limitnumber50Page size.
--offsetnumber0Skip count.

Examples

uip or users list-available --folder-path "Shared"
uip or users list-available --folder-path "Shared" --search admin
uip or users list-available --folder-path "Shared" \
    --output-filter 'Data[].Key'
uip or users list-available --folder-path "Shared"
uip or users list-available --folder-path "Shared" --search admin
uip or users list-available --folder-path "Shared" \
    --output-filter 'Data[].Key'

Data shape (--output json)

{
  "Code": "UserAvailableList",
  "Data": [
    {
      "Key": "d4e5f6a7-0000-0000-0000-000000000003",
      "UserName": "newuser@example.com",
      "Roles": ""
    }
  ]
}
{
  "Code": "UserAvailableList",
  "Data": [
    {
      "Key": "d4e5f6a7-0000-0000-0000-000000000003",
      "UserName": "newuser@example.com",
      "Roles": ""
    }
  ]
}

uip or users get

Fetch a user by GUID key.

Arguments

NameRequiredPurpose
<user-key>yesUser key (GUID).

Options

ShortLongValueDefaultDescription
--all-fieldsflagoffReturn the full API payload instead of the curated summary.

Examples

uip or users get d4e5f6a7-0000-0000-0000-000000000001
uip or users get d4e5f6a7-0000-0000-0000-000000000001 --all-fields
uip or users get d4e5f6a7-0000-0000-0000-000000000001 --output-filter 'Data.Email'
uip or users get d4e5f6a7-0000-0000-0000-000000000001
uip or users get d4e5f6a7-0000-0000-0000-000000000001 --all-fields
uip or users get d4e5f6a7-0000-0000-0000-000000000001 --output-filter 'Data.Email'

Data shape (--output json)

{
  "Code": "User",
  "Data": {
    "Key": "d4e5f6a7-0000-0000-0000-000000000001",
    "UserName": "admin@example.com",
    "FullName": "Admin User",
    "Email": "admin@example.com",
    "Type": "User",
    "IsActive": true
  }
}
{
  "Code": "User",
  "Data": {
    "Key": "d4e5f6a7-0000-0000-0000-000000000001",
    "UserName": "admin@example.com",
    "FullName": "Admin User",
    "Email": "admin@example.com",
    "Type": "User",
    "IsActive": true
  }
}

uip or users import

Import a directory principal — an Identity Service user, group, robot account, or external application — into this tenant. This is the only way this CLI provisions a new tenant user; there is no standalone "create a user" verb, because Orchestrator users are always backed by an IS principal.

References an existing IS principal by --username or --directory-id, plus --type to declare which kind of principal it is (the CLI does not guess). Optionally assigns folder roles in the same call with --folder-path/--folder-key and --role-keys — both a folder and roles must be provided together, or neither. --directory-id imports are idempotent: importing an already-imported principal by directory ID returns the existing tenant record instead of failing.

Robot accounts and external applications must be imported with --directory-id (the IS UUID) — Orchestrator can't resolve them by <domain>\<name> the way it resolves a directory user. Find the ID with uip admin robot-accounts list --search <name> or uip admin external-apps list.

Arguments and required identifiers

NameRequiredPurpose
--usernameone of --username/--directory-idIdentity Service username (typically an email).
--directory-idone of --username/--directory-idIdentity Service directory identifier (OIDC subject / IS UUID). Required for DirectoryRobot and DirectoryExternalApplication types.

Options

ShortLongValueDefaultDescription
--typeDirectoryUser | DirectoryGroup | DirectoryRobot | DirectoryExternalApplicationrequiredDirectory principal type.
--domaintextDirectory domain name as configured in Identity Service. Only needed for on-premises environments with configured AD domains.
--folder-pathpathFolder to assign the imported principal to. Use with --role-keys.
--folder-keyGUIDFolder alternative to --folder-path. Use with --role-keys.
--role-keysCSV of GUIDsFolder role GUIDs to grant. Requires a folder option; a folder option without --role-keys is also rejected.

Examples

uip or users import --username alice@example.com

uip or users import --username alice@example.com \
    --folder-path Shared --role-keys a1b2c3d4-0000-0000-0000-000000000001

# Robot account — directory ID required
uip or users import --directory-id 11111111-2222-3333-4444-555555555555 \
    --type DirectoryRobot
uip or users import --username alice@example.com

uip or users import --username alice@example.com \
    --folder-path Shared --role-keys a1b2c3d4-0000-0000-0000-000000000001

# Robot account — directory ID required
uip or users import --directory-id 11111111-2222-3333-4444-555555555555 \
    --type DirectoryRobot

Data shape (--output json)

{
  "Code": "UserImported",
  "Data": {
    "UserName": "alice@example.com",
    "Type": "DirectoryUser",
    "AssignedFolderPath": "Shared",
    "AssignedRoleKeys": ["a1b2c3d4-0000-0000-0000-000000000001"]
  }
}
{
  "Code": "UserImported",
  "Data": {
    "UserName": "alice@example.com",
    "Type": "DirectoryUser",
    "AssignedFolderPath": "Shared",
    "AssignedRoleKeys": ["a1b2c3d4-0000-0000-0000-000000000001"]
  }
}

AlreadyImported: true is added when --directory-id matched a principal already present in the tenant.

uip or users assign

Assign a user to a folder, optionally with folder-level roles.

Note:

CAUTION — destructive on roles. If --role-keys is passed, the server replaces all of the user's existing roles in the target folder with the ones supplied — roles not in the payload are removed silently. To preserve existing roles, read them first with roles user-roles list <principal-name> --type <type> and pass the full desired union to --role-keys. For additive tenant-level role membership on a role, use roles users set instead.

Options

ShortLongValueDefaultDescription
--user-keyGUIDrequiredUser key.
--role-keysCSV of GUIDsFolder-scope role GUIDs.
--folder-pathpathTarget folder. Provide this or --folder-key.
--folder-keyGUIDTarget folder.

Examples

uip or users assign --user-key d4e5f6a7-0000-0000-0000-000000000001 \
    --folder-path "Shared"

uip or users assign --user-key d4e5f6a7-0000-0000-0000-000000000001 \
    --folder-path "Shared" \
    --role-keys a1b2c3d4-0000-0000-0000-000000000002

uip or users assign --user-key d4e5f6a7-0000-0000-0000-000000000001 \
    --folder-path "Shared" --output-filter 'Data.Status'
uip or users assign --user-key d4e5f6a7-0000-0000-0000-000000000001 \
    --folder-path "Shared"

uip or users assign --user-key d4e5f6a7-0000-0000-0000-000000000001 \
    --folder-path "Shared" \
    --role-keys a1b2c3d4-0000-0000-0000-000000000002

uip or users assign --user-key d4e5f6a7-0000-0000-0000-000000000001 \
    --folder-path "Shared" --output-filter 'Data.Status'

Data shape (--output json)

{
  "Code": "UserAssigned",
  "Data": {
    "UserKey": "d4e5f6a7-0000-0000-0000-000000000001",
    "FolderPath": "Shared",
    "Status": "Assigned successfully"
  }
}
{
  "Code": "UserAssigned",
  "Data": {
    "UserKey": "d4e5f6a7-0000-0000-0000-000000000001",
    "FolderPath": "Shared",
    "Status": "Assigned successfully"
  }
}

uip or users unassign

Remove a user from a folder. The user is not deleted — only their folder assignment is removed.

Options

ShortLongValueDefaultDescription
--user-keyGUIDrequiredUser key.
--folder-pathpathFolder to remove from. Provide this or --folder-key.
--folder-keyGUIDFolder to remove from.

Examples

uip or users unassign --user-key d4e5f6a7-0000-0000-0000-000000000001 \
    --folder-path "Shared"

uip or users unassign --user-key d4e5f6a7-0000-0000-0000-000000000001 \
    --folder-key b1c2d3e4-0000-0000-0000-000000000001

uip or users unassign --user-key d4e5f6a7-0000-0000-0000-000000000001 \
    --folder-path "Shared" --output-filter 'Data.Status'
uip or users unassign --user-key d4e5f6a7-0000-0000-0000-000000000001 \
    --folder-path "Shared"

uip or users unassign --user-key d4e5f6a7-0000-0000-0000-000000000001 \
    --folder-key b1c2d3e4-0000-0000-0000-000000000001

uip or users unassign --user-key d4e5f6a7-0000-0000-0000-000000000001 \
    --folder-path "Shared" --output-filter 'Data.Status'

Data shape (--output json)

{
  "Code": "UserUnassigned",
  "Data": {
    "UserKey": "d4e5f6a7-0000-0000-0000-000000000001",
    "FolderPath": "Shared",
    "Status": "Unassigned successfully"
  }
}
{
  "Code": "UserUnassigned",
  "Data": {
    "UserKey": "d4e5f6a7-0000-0000-0000-000000000001",
    "FolderPath": "Shared",
    "Status": "Unassigned successfully"
  }
}

uip or users update

Update a user's tenant-side properties by key (GUID). Reads current values, merges the supplied fields, and saves. Provide at least one option.

edit is a registered alias for this verb — uip or users edit works identically to uip or users update.

Reliably editable: license profile, session flags, and unattended robot credentials. Identity attributes (--name, --surname, --email, --type) are accepted by the API, but for directory principals (DirectoryUser/Group/Robot/ExternalApplication) those fields are normally synced from Identity Service — changing them here only edits the Orchestrator-side cached copy and may be overwritten on the next IS sync. For a durable identity change, edit the IS principal directly.

This command does not expose role assignments — use users assign (folder roles) or users assign-roles (tenant roles) for that; the current tenant role list is always re-sent unchanged so an update never touches it.

Arguments

NameRequiredPurpose
<user-key>yesUser key (GUID).

Options

Identity (Orchestrator-side cache only for directory principals)
LongValueDescription
--nametextNew first name.
--surnametextNew last name.
--emailtextNew email address.
--typetextNew user type (for example User, DirectoryUser).
License and session permissions
LongValueDescription
--license-typetextFor example Attended, Unattended, StudioPro.
--allow-unattended / --deny-unattendedflagAllow or deny unattended job execution.
--allow-attended / --deny-attendedflagAllow or deny attended sessions.
--allow-login / --deny-loginflagAllow or deny Orchestrator login.
--allow-personal-workspace / --deny-personal-workspaceflagAllow or deny personal workspace.
--active / --inactiveflagActivate or deactivate the user.
Unattended execution credentials
LongValueDescription
--unattended-usernametextWindows account for unattended execution (for example DOMAIN\user).
--unattended-passwordtextPassword, or — for a read-only credential store — the external secret reference name.
--credential-store-keyGUIDCredential store for unattended execution credentials. Use credential-stores list to find it.
--credential-typeDefault | SmartCardCredential type.
--limit-concurrent / --no-limit-concurrentflagAllow or disallow concurrent execution on multiple machines.

If you set any unattended-credential flag on a user with no existing UnattendedRobot record, both --unattended-username and --unattended-password are required together — Orchestrator silently discards an incomplete record, so the CLI refuses to submit one rather than report a false success. Editing an existing record accepts any subset of these flags.

Examples

uip or users update d4e5f6a7-0000-0000-0000-000000000001 --email newmail@example.com

uip or users update d4e5f6a7-0000-0000-0000-000000000001 \
    --allow-unattended --license-type Unattended \
    --unattended-username DOMAIN\\bot --unattended-password s3cret

uip or users update d4e5f6a7-0000-0000-0000-000000000001 --inactive \
    --output-filter 'Data.Status'
uip or users update d4e5f6a7-0000-0000-0000-000000000001 --email newmail@example.com

uip or users update d4e5f6a7-0000-0000-0000-000000000001 \
    --allow-unattended --license-type Unattended \
    --unattended-username DOMAIN\\bot --unattended-password s3cret

uip or users update d4e5f6a7-0000-0000-0000-000000000001 --inactive \
    --output-filter 'Data.Status'

Data shape (--output json)

{
  "Code": "UserUpdated",
  "Data": { "Key": "d4e5f6a7-0000-0000-0000-000000000001", "Status": "Updated successfully" }
}
{
  "Code": "UserUpdated",
  "Data": { "Key": "d4e5f6a7-0000-0000-0000-000000000001", "Status": "Updated successfully" }
}

uip or users current

Return the currently authenticated user. Useful for verifying the session and discovering your own user key.

Options

ShortLongValueDefaultDescription

Examples

uip or users current
uip or users current --output-filter 'Data.Key'
uip or users current --output table
uip or users current
uip or users current --output-filter 'Data.Key'
uip or users current --output table

Data shape (--output json)

Same User shape as users get.

uip or users assign-roles

Assign tenant-level roles to a user.

Note:

CAUTION — destructive. The server replaces the user's entire tenant-level role list with the keys passed via --role-keys — roles not in the payload are removed silently. To preserve existing tenant roles, read them first with roles user-roles list <principal-name> --type <type> and pass the full desired union to --role-keys. Unlike users assign (folder-level roles), this sets roles that apply across the entire tenant.

Arguments

NameRequiredPurpose
<user-key>yesUser key (GUID).

Options

ShortLongValueDefaultDescription
--role-keysCSV of GUIDsrequiredRole GUIDs to assign at tenant scope.

Examples

uip or users assign-roles d4e5f6a7-0000-0000-0000-000000000001 \
    --role-keys a1b2c3d4-0000-0000-0000-000000000001

uip or users assign-roles d4e5f6a7-0000-0000-0000-000000000001 \
    --role-keys a1b2c3d4-0000-0000-0000-000000000001,a1b2c3d4-0000-0000-0000-000000000002

uip or users assign-roles d4e5f6a7-0000-0000-0000-000000000001 \
    --role-keys a1b2c3d4-0000-0000-0000-000000000001 \
    --output-filter 'Data.RolesAssigned'
uip or users assign-roles d4e5f6a7-0000-0000-0000-000000000001 \
    --role-keys a1b2c3d4-0000-0000-0000-000000000001

uip or users assign-roles d4e5f6a7-0000-0000-0000-000000000001 \
    --role-keys a1b2c3d4-0000-0000-0000-000000000001,a1b2c3d4-0000-0000-0000-000000000002

uip or users assign-roles d4e5f6a7-0000-0000-0000-000000000001 \
    --role-keys a1b2c3d4-0000-0000-0000-000000000001 \
    --output-filter 'Data.RolesAssigned'

Data shape (--output json)

{
  "Code": "UserRolesAssigned",
  "Data": {
    "UserKey": "d4e5f6a7-0000-0000-0000-000000000001",
    "RolesAssigned": 1,
    "Status": "Assigned successfully"
  }
}
{
  "Code": "UserRolesAssigned",
  "Data": {
    "UserKey": "d4e5f6a7-0000-0000-0000-000000000001",
    "RolesAssigned": 1,
    "Status": "Assigned successfully"
  }
}

Exit codes

See Exit codes. No verb-specific overrides.

  • uip or roles — manage roles, role-user membership, and principal permission inspection (roles user-roles list, roles user-permissions list).
  • uip or folders — find folder keys for users assign / unassign.
  • uip or jobs — especially jobs start --user-keys.

See also

Was this page helpful?

Connect

Need help? Support

Want to learn? UiPath Academy

Have questions? UiPath Forum

Stay updated