You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell脚本中通过1Password CLIv2实现无交互自动登录?

1Password CLIv2 PowerShell自动登录解决方案

核心解决思路

1Password CLIv2的op signin命令本身支持非交互式参数,不用依赖手动输入或管道传值,用官方提供的参数就能跳过输入提示实现自动登录。


方法1:通过--password参数传入密码

直接指定密码参数即可跳过交互式输入,但绝对不能硬编码密码,推荐用安全方式存储和读取:

步骤1:用PowerShell安全模块存储密码

先安装官方的密钥管理模块:

Install-Module -Name Microsoft.PowerShell.SecretManagement, Microsoft.PowerShell.SecretStore -Force

注册本地密钥存储容器:

Register-SecretVault -Name Local1PStore -ModuleName Microsoft.PowerShell.SecretStore -DefaultVault

存入你的1Password账户密码:

Set-Secret -Name 1PAccountPassword -Secret "你的1Password密码"

步骤2:脚本中实现自动登录

从安全存储中读取密码,再传入op signin:

$password = Get-Secret -Name 1PAccountPassword -AsPlainText
op signin domain.1password.com my@email.com --password $password

方法2:使用会话令牌(更高效,适合长期运行脚本)

登录一次生成会话令牌,之后通过环境变量复用令牌,无需重复输入密码:

生成会话令牌(仅需执行一次)

# 生成原始会话令牌
$sessionToken = op signin domain.1password.com my@email.com --raw
# 设置当前进程的环境变量
[Environment]::SetEnvironmentVariable("OP_SESSION_domain.1password.com", $sessionToken, "Process")

脚本中直接复用令牌

设置好环境变量后,后续所有op命令都会自动使用会话令牌,无需再执行op signin:

# 示例:直接获取项目列表,无需重复登录
op item list

重要注意事项

  • 不要使用Invoke-Expression $(op signin),直接调用op命令更安全,Invoke-Expression存在命令注入风险。
  • 会话令牌有有效期,过期后需要重新生成。
  • 绝对禁止在脚本中硬编码密码,避免账户信息泄露。

内容的提问来源于stack exchange,提问作者Timothy Waters

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 12:05:13