UiPath Documentation
uipath-cli
latest
false
UiPath CLI 用户指南
重要 :
请注意,此内容已使用机器翻译进行了本地化。 新发布内容的本地化可能需要 1-2 周的时间才能完成。

UIP 登录

"uip Login" 的语法和选项,用于根据 UiPath Cloud 对 UiPath CLI 进行身份验证,并将会话在本地保留。

uip login针对 UiPath Cloud 对 CLI 进行身份验证,并将生成的会话保留在本地.uipath/文件夹中。成功后,CLI 具有访问令牌和选定的租户;后续命令运行的工具将自动选择这些命令。有关凭据模型,请参阅“身份验证” ;有关文件夹所在的位置,请参阅“会话和凭据” 。

有关检查状态的信息,请参阅uip login status 。要关闭会话,请参阅uip logout 。

大纲​

uip login [--tenant <name>] [--organization <name>]
         [--authority <url>] [--client-id <id>] [--client-secret <secret>]
         [--client-assertion <jwt>] [--scope <scopes>] [--no-browser] [-f <folder>]
uip login status
uip login refresh [--login-validity <minutes>]
uip login which
uip login tenant list [-f <folder>]
uip login tenant set <name> [-f <folder>]
uip login profiles list [--all-fields]
uip login profiles delete [profile-name] [--all] -y
uip login [--tenant <name>] [--organization <name>]
         [--authority <url>] [--client-id <id>] [--client-secret <secret>]
         [--client-assertion <jwt>] [--scope <scopes>] [--no-browser] [-f <folder>]
uip login status
uip login refresh [--login-validity <minutes>]
uip login which
uip login tenant list [-f <folder>]
uip login tenant set <name> [-f <folder>]
uip login profiles list [--all-fields]
uip login profiles delete [profile-name] [--all] -y

每个uip login子命令都遵循全局选项( --output 、 --output-filter 、 --log-level 、 --log-file 、 --profile 、 --interactive / --no-interactive )。退出代码遵循标准合同。

UIP 登录​

通过浏览器以交互方式进行身份验证,或使用外部应用程序客户端凭据或联合(工作负载身份)OIDC 令牌以非交互式方式进行身份验证。

参数​

无。

选项​

  • -f, --file <folder> — 凭据文件夹的路径。会话将保留在 <folder> 中。如果没有它,CLI 将使用默认位置(请参阅会话和凭据)。与全局 --profile 标志互斥。
  • --authority <url> — 自定义授权 URL,例如 https://cloud.uipath.com(默认)、https://govcloud.uipath.us(公共部门)或 Automation Suite 主机。https:// 前缀可以省略(cloud.uipath.com 有效)。
  • --client-id <id> — UiPath 外部应用程序的客户端 ID 或应用程序 ID。接受env.NAME以从环境变量中读取。
  • --client-secret <secret> — 机密外部应用程序的客户端密码。接受 env.NAME 以从环境变量中读取。与 --client-assertion 互斥。
  • --client-assertion <jwt> — 用于联合登录(工作负载身份)的 OIDC 令牌 (JWT),而不是客户端密码。接受env.NAME(推荐)以从环境变量中读取,将原始令牌作为文本值传递会打印警告,否则它会出现在 shell 历史记录、流程列表和 CI 日志中。需要 --client-id。与 --client-secret 互斥。
  • -s, --scope <scopes> — 以逗号或空格分隔的作用域(例如 "OR.Folders OR.Jobs")。与外部应用程序或联合凭据一起使用。
  • -t, --tenant <name> — 租户名称(非交互模式)。如果省略,则与全局 --interactive 标志配对,以便 CLI 可以提示输入标志。
  • --organization <name> — 组织逻辑名称,在浏览器登录期间预选。当您的用户属于多个组织时,绕过组织选取器。使用客户端凭据或联合登录时已被忽略(并显示警告)— 组织在这些流程中由 --client-id 修复。
  • --no-browser — 不打开浏览器;将授权 URL 打印到 STderr(以 UIPATH_AUTH_URL <url> 为前缀,以实现对 grep 的自动化),并在登录回调到达之前被阻止。用于无头/自动化驱动的登录。也可通过 UIPATH_CLI_NO_BROWSER=true 设置。使用客户端凭据或联合登录时,无效(会被忽略,并显示警告),在这些流程中都不会打开浏览器。当人员登录时,让他们在自己的终端中运行命令 — 通过代理的 shell 工具运行命令,会隐藏打印的 URL。

此页面还记录了两个非特定于登录的标志 — 有关完整行为,请参阅全局选项:

  • --interactive / --no-interactive — 在身份验证后,强制(或隐藏)交互式提示词,从云返回的列表中选择租户。没有 --it 缩写形式。
  • --profile <name> — 使用已保存的命名登录配置文件,而不是默认的凭据位置。与 -f, --file 互斥。

凭据模式​

  • 交互式/用户凭据— 运行uip login (可以选择使用--interactive 、 --tenant或--organization )。浏览器流程在 UiPath Cloud 授权上完成;生成的令牌将保留在凭据文件夹中。
  • 外部应用程序(客户端凭据,非交互式) — 传递--client-id 、 --client-secret和--scope ,通常与--tenant一起使用。适用于 CI 运行者。使用 --client-secret env.UIPATH_CLIENT_SECRET 从环境变量中读取密码,以将其保留在 Shell 历史记录中。
  • 联合/工作负载身份(非交互式) — 传递--client-id和--client-assertion (上一步中从 CI 提供程序或工作负载身份代理获取的 OIDC JWT),而不是客户端密码。--client-secret 和 --client-assertion 不能一起使用。

示例​

# Browser-based interactive login, picks tenant at the end
uip login --interactive

# Log directly into a known org + tenant (no browser picker)
uip login --organization my-org --tenant DefaultTenant

# Log in to a non-default authority, e.g. an Automation Suite host
uip login --authority automation.acme-corp.com --tenant DefaultTenant

# External Application with secret from environment variable
uip login \
  --client-id "00000000-0000-0000-0000-000000000001" \
  --client-secret env.UIPATH_CLIENT_SECRET \
  --scope "OR.Folders OR.Jobs" \
  --tenant DefaultTenant

# Federated login (workload identity) — the OIDC token comes from your CI provider
uip login \
  --client-id "00000000-0000-0000-0000-000000000001" \
  --client-assertion env.CI_OIDC_TOKEN \
  --tenant DefaultTenant

# Headless / automation-driven login: print the authorize URL instead of opening a browser
uip login --no-browser --tenant DefaultTenant

# Custom credentials folder (useful for scoping per-project sessions)
uip login --interactive -f ./.uipath
# Browser-based interactive login, picks tenant at the end
uip login --interactive

# Log directly into a known org + tenant (no browser picker)
uip login --organization my-org --tenant DefaultTenant

# Log in to a non-default authority, e.g. an Automation Suite host
uip login --authority automation.acme-corp.com --tenant DefaultTenant

# External Application with secret from environment variable
uip login \
  --client-id "00000000-0000-0000-0000-000000000001" \
  --client-secret env.UIPATH_CLIENT_SECRET \
  --scope "OR.Folders OR.Jobs" \
  --tenant DefaultTenant

# Federated login (workload identity) — the OIDC token comes from your CI provider
uip login \
  --client-id "00000000-0000-0000-0000-000000000001" \
  --client-assertion env.CI_OIDC_TOKEN \
  --tenant DefaultTenant

# Headless / automation-driven login: print the authorize URL instead of opening a browser
uip login --no-browser --tenant DefaultTenant

# Custom credentials folder (useful for scoping per-project sessions)
uip login --interactive -f ./.uipath

数据形状 ( --output json ) ​

{
  "Code": "Authenticated",
  "Data": {
    "Status": "Logged in",
    "Organization": "my-org",
    "Tenant": "DefaultTenant"
  }
}
{
  "Code": "Authenticated",
  "Data": {
    "Status": "Logged in",
    "Organization": "my-org",
    "Tenant": "DefaultTenant"
  }
}

故障模式​

  • 非交互式登录后缺少租户会引发包含Message: "No tenant selected"的ConfigError ,并指示您使用--tenant <name>或--interactive重新运行。
  • 来自授权机构的传输错误和非 2xx 响应显示为AuthenticationError ,原始 HTTP 状态为Context.httpStatus (如可用)。
  • --client-id / --client-secret中格式错误的env.NAME引用会在任何网络调用之前生成ConfigError 。

UIP 登录刷新​

主动刷新访问令牌,并发出计算机可读的会话有效负载(访问令牌、组织/租户身份、过期)。适用于需要在接下来的几分钟内需要有保证有效的令牌的程序化使用者(例如 IDE 扩展)。与 uip login status 不同, 是一个状态报告,只会在令牌过期时附带轮换令牌,refresh 会强制执行在需要时提前轮换。

参数​

无。

选项​

  • --login-validity <minutes> — 仅当当前访问令牌在如此长时间内过期时刷新。默认 5。传递 0 可跳过主动检查,并仅在令牌已过期时进行轮换。范围 0–525600(一年)。

示例​

# Refresh and print a token guaranteed valid for the next 5 minutes (the default)
uip login refresh --output json

# Require at least 10 minutes of validity, forcing a refresh if the token expires sooner
uip login refresh --login-validity 10 --output json
# Refresh and print a token guaranteed valid for the next 5 minutes (the default)
uip login refresh --output json

# Require at least 10 minutes of validity, forcing a refresh if the token expires sooner
uip login refresh --login-validity 10 --output json

数据形状 ( --output json ) ​

{
  "Code": "LoginRefresh",
  "Data": {
    "Status": "Logged in",
    "Organization": "my-org",
    "Tenant": "DefaultTenant",
    "Expiration Date": "2026-04-18T10:30:00Z",
    "BaseUrl": "https://cloud.uipath.com",
    "OrganizationId": "00000000-0000-0000-0000-000000000001",
    "OrganizationName": "my-org",
    "TenantId": "00000000-0000-0000-0000-000000000002",
    "TenantName": "DefaultTenant",
    "AccessToken": "<jwt>"
  }
}
{
  "Code": "LoginRefresh",
  "Data": {
    "Status": "Logged in",
    "Organization": "my-org",
    "Tenant": "DefaultTenant",
    "Expiration Date": "2026-04-18T10:30:00Z",
    "BaseUrl": "https://cloud.uipath.com",
    "OrganizationId": "00000000-0000-0000-0000-000000000001",
    "OrganizationName": "my-org",
    "TenantId": "00000000-0000-0000-0000-000000000002",
    "TenantName": "DefaultTenant",
    "AccessToken": "<jwt>"
  }
}
重要提示:

仅当--output json生效并且为显式传递--output或标准输出为非交互式(管道传输/重定向)时,才包含AccessToken 。终端中的交互式 uip login refresh 永远不会打印令牌 — 这是特意的设计,因此令牌不会意外进入回滚页面。当刷新的令牌无法将其保留回磁盘时,Code 为 LoginRefreshPartial,而不是 LoginRefresh(调用者仍将获取当前流程的有效可用令牌)。

故障模式​

  • 未登录、刷新失败或令牌过期且没有可用的刷新令牌:AuthenticationError,退出代码 2,且 Instructions 指明了特定原因。

UIP 登录​

打印 uip 将从当前工作目录读取身份验证的位置 — “为什么我的会话未被选取”的确切诊断。不采用任何选项;它始终报告会话和凭据中所述的无预约 + 返回主页的回退解决方案。

参数​

无。

选项​

无。

示例​

uip login which --output json
uip login which --output json

数据形状 — 基于文件的会话 (--output json)​

{
  "Code": "AuthFile",
  "Data": {
    "Path": "/Users/me/projects/foo/.uipath/.auth",
    "Exists": true,
    "Source": "ancestor"
  }
}
{
  "Code": "AuthFile",
  "Data": {
    "Path": "/Users/me/projects/foo/.uipath/.auth",
    "Exists": true,
    "Source": "ancestor"
  }
}

Source 报告在临时链上找到文件的位置(例如 ancestor 与回退的主目录)。当全局 --profile 标志命名活动配置文件时,响应还包含 Profile 字段。

数据形状 — 环境变量会话 (--output json)​

为 UIPATH_CLI_ENABLE_ENV_AUTH=true 时,which 报告 env-var 模式而不是文件:

{
  "Code": "AuthEnv",
  "Data": {
    "EnableVar": "UIPATH_CLI_ENABLE_ENV_AUTH",
    "AllVarsPresent": true,
    "MissingVars": [],
    "Vars": [
      "UIPATH_CLI_AUTH_TOKEN",
      "UIPATH_CLI_ORGANIZATION_NAME",
      "UIPATH_CLI_ORGANIZATION_ID",
      "UIPATH_CLI_TENANT_NAME",
      "UIPATH_CLI_TENANT_ID"
    ]
  }
}
{
  "Code": "AuthEnv",
  "Data": {
    "EnableVar": "UIPATH_CLI_ENABLE_ENV_AUTH",
    "AllVarsPresent": true,
    "MissingVars": [],
    "Vars": [
      "UIPATH_CLI_AUTH_TOKEN",
      "UIPATH_CLI_ORGANIZATION_NAME",
      "UIPATH_CLI_ORGANIZATION_ID",
      "UIPATH_CLI_TENANT_NAME",
      "UIPATH_CLI_TENANT_ID"
    ]
  }
}

MissingVars 从不包含值,仅包含未设置或为空的变量名称,因此您可以始终安全地将响应粘贴到工单或聊天中。

故障模式​

  • 未在临时链的任何位置找到凭据文件:AuthenticationError,退出代码 2,包含运行 uip login 的说明。
  • 解析的凭据文件路径存在,但无法使用(例如,该路径或文件权限块中的一个目录):Failure,退出代码 1 — 主机/文件系统问题,而非日志再次进入”页面问题。

UIP 登录租户列表​

列出当前组织中对身份验证用户可见的所有租户。需要有效登录。

参数​

无。

选项​

  • -f, --file <folder> — 凭据文件夹的路径。默认为上一个 uip login 使用的会话。与全局 --profile 标志互斥。

示例​

uip login tenant list
uip login tenant list

数据形状 ( --output json ) ​

{
  "Code": "TenantList",
  "Data": [
    {
      "TenantName": "DefaultTenant",
      "TenantId": "a1b2c3d4-0000-0000-0000-000000000001"
    },
    {
      "TenantName": "ProductionTenant",
      "TenantId": "a1b2c3d4-0000-0000-0000-000000000002"
    }
  ]
}
{
  "Code": "TenantList",
  "Data": [
    {
      "TenantName": "DefaultTenant",
      "TenantId": "a1b2c3d4-0000-0000-0000-000000000001"
    },
    {
      "TenantName": "ProductionTenant",
      "TenantId": "a1b2c3d4-0000-0000-0000-000000000002"
    }
  ]
}

如果会话未登录,该命令会发出AuthenticationError其中包含先运行uip login说明。

UIP 登录租户集​

按名称选择活动租户。租户必须存在于login tenant list返回的列表中; CLI 使用新选择来更新存储的会话。

参数​

  • <name> (必填) — uip login tenant list返回的租户名称。

选项​

  • -f, --file <folder> — 凭据文件夹的路径。默认为上一个 uip login 使用的会话。与全局 --profile 标志互斥。

示例​

uip login tenant set DefaultTenant
uip login tenant set DefaultTenant

数据形状 ( --output json ) ​

{
  "Code": "TenantSet",
  "Data": {
    "Name": "DefaultTenant",
    "Id": "a1b2c3d4-0000-0000-0000-000000000001"
  }
}
{
  "Code": "TenantSet",
  "Data": {
    "Name": "DefaultTenant",
    "Id": "a1b2c3d4-0000-0000-0000-000000000001"
  }
}

故障模式​

  • 未知租户名称时会生成ValidationError其中Instructions会列出可用的租户,例如argument should be one of DefaultTenant, ProductionTenant 。
  • 如果 CLI 无法更新存储的会话,错误将显示为Failure ,并带有与权限相关的提示。

UIP 登录配置文件列表​

列出存储在~/.uipath/profiles下的每个命名登录配置文件(请参阅全局--profile标志),以及default凭据位置。

选项​

  • --all-fields — 还要包括每个配置文件的授权 URL、令牌到期日期和凭据文件路径。

示例​

uip login profiles list
uip login profiles list
{
  "Code": "ProfileList",
  "Data": [
    { "Name": "default", "Active": true, "OrganizationName": "acme", "TenantName": "DefaultTenant", "Status": "Logged in" },
    { "Name": "staging", "Active": false, "OrganizationName": "acme-staging", "TenantName": "QA", "Status": "Expired" }
  ]
}
{
  "Code": "ProfileList",
  "Data": [
    { "Name": "default", "Active": true, "OrganizationName": "acme", "TenantName": "DefaultTenant", "Status": "Logged in" },
    { "Name": "staging", "Active": false, "OrganizationName": "acme-staging", "TenantName": "QA", "Status": "Expired" }
  ]
}
uip login profiles list --all-fields
uip login profiles list --all-fields

Url、ExpiresAt 和 Path 仅包含 --all-fields。在交互式表格中,Status 不是 Logged in 的任何配置文件都会突出显示。

uip 登录配置文件删除​

删除已命名的登录配置文件及其存储的凭据。这是真正的磁盘文件删除操作,无法撤销。

参数​

  • [profile-name] — 要删除的配置文件的名称。使用 --all 时省略。

选项​

  • --all — 删除所有已命名配置文件,而非一个。
  • -y, --yes — 确认删除。必需— 该命令从不以交互方式提示。

示例​

uip login profiles delete staging --yes
uip login profiles delete staging --yes
{ "Code": "Message", "Data": { "Message": "Deleted profile 'staging'. Removed /home/alice/.uipath/profiles/staging" } }
{ "Code": "Message", "Data": { "Message": "Deleted profile 'staging'. Removed /home/alice/.uipath/profiles/staging" } }
uip login profiles delete --all --yes
uip login profiles delete --all --yes
{
  "Code": "DeleteResult",
  "Data": [
    { "Name": "staging", "Status": "deleted" },
    { "Name": "prod", "Status": "deleted" }
  ]
}
{
  "Code": "DeleteResult",
  "Data": [
    { "Name": "staging", "Status": "deleted" },
    { "Name": "prod", "Status": "deleted" }
  ]
}

故障模式​

  • 在接触磁盘之前,同时传递配置文件名称和 --all 或两者均不失败会失败并显示 ValidationError。
  • default无法以这种方式删除 —ValidationError uip logout删除会失败, 会指向您 ,因为default 未存储在~/.uipath/profiles 下。
  • 在同一调用中,删除 --profile <name> 当前选择的配置文件将失败,并显示 ValidationError(重新运行时不使用该标志)。
  • 使用 --all,活动的配置文件(如有)将自动跳过,而不是删除,并会在 Status: "skipped" 的响应中报告。如果跳过这一步而没有其他可删除的内容,则该命令将失败并显示 ValidationError,而不是静默成功。
  • 未知的配置文件名称失败,并且 Code: "not_found" 指向 login profiles list。

此页面有帮助吗?

连接

需要帮助? 支持

想要了解详细内容? UiPath Academy

有问题? UiPath 论坛

保持更新