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

如何通过CLI(如curl)从SharePoint Online安全下载文件至本地

从SharePoint Online下载文件:无明文密码的CLI实现

完全可行,下面分场景给你具体的实现方案:

一、从密码管理库获取密码(推荐)

1. 基于1Password CLI

先确保已安装1Password CLI并完成登录,将SharePoint的密码存入1Password条目(比如条目名SPO-Download,密码字段名password),然后通过子命令直接提取密码传给curl:

PASSWORD=$(op read "op://私人/SPO-Download/password")
curl --user "你的用户ID:$PASSWORD" -o output_file "https://file_path?raw"

这种方式密码不会出现在命令历史,也不会明文暴露。

2. 基于macOS系统钥匙串

把密码存入Mac钥匙串,设置条目名称为SPO-Password、关联账户为你的用户ID,用系统命令提取:

PASSWORD=$(security find-generic-password -w -a "你的用户ID" -s "SPO-Password")
curl --user "你的用户ID:$PASSWORD" -o output_file "https://file_path?raw"

二、从Active Directory获取密码(仅限域内机器,不推荐)

SharePoint Online大多已禁用旧版基本认证,若公司仍允许,可尝试以下方式:

Windows环境(需AD模块权限)

AD默认不存储明文密码,需特殊权限读取加密字段并解密:

$passwordBytes = Get-ADUser -Identity "你的用户ID" -Properties msDS-UserPassword | Select-Object -ExpandProperty msDS-UserPassword
$plainPassword = [System.Text.Encoding]::Unicode.GetString($passwordBytes)
curl --user "你的用户ID:$plainPassword" -o output_file "https://file_path?raw"

⚠️ 注意:该操作需要AD管理员权限,且存在密码泄露风险,优先推荐密码管理库方案。

关键安全提示

  • 不要用export设置密码环境变量,避免env命令泄露密码;用子命令直接传递更安全。
  • 若命令执行后报错,大概率是公司SPO租户禁用了基本认证,此时需改用OAuth类工具,但对简单脚本来说成本较高,建议先确认公司认证规则。
  • 避免密码写入命令历史:可在命令前加空格(bash默认忽略带空格的命令记录),或用括号包裹执行:
PASSWORD=$(op read "...") && curl ...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 09:18:13