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

Azure DevOps中Copy-Item报错“用户名或密码错误”求助

解决Azure DevOps流水线Copy-Item报错“用户名或密码不正确”的问题

可能的原因及解决步骤

1. 检查自托管代理的运行账户

  • 如果你的流水线用的是自托管代理,脚本默认会以代理服务启动时的账户执行,这个账户和你流水线变量里设置的服务账户是两回事。
  • 操作:到代理所在机器,打开「服务」,找到Azure DevOps Agent服务,查看「登录」标签页的账户信息:
    • 如果是域账户,确认密码是否已修改但未更新服务登录密码;
    • 如果是本地账户,确认该账户对目标共享目录\\server\test\project\files有写入权限。

2. 确保流水线变量的密码正确传递

  • 机密变量默认不会自动注入到PowerShell的环境变量中,需要手动映射:
    1. 编辑PowerShell任务,找到「环境变量」区域;
    2. 添加两个映射:
      • 键:SERVICE_USERNAME,值:$(你的服务账户用户名变量名)
      • 键:SERVICE_PASSWORD,值:$(你的服务账户密码变量名)
    3. 保存任务配置,重新运行流水线。

3. 修改脚本显式使用指定服务账户

  • 避免依赖代理账户,直接在脚本中使用流水线配置的服务账户访问共享目录,示例代码:
# 从环境变量读取凭据
$username = $env:SERVICE_USERNAME
$securePassword = ConvertTo-SecureString $env:SERVICE_PASSWORD -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ($username, $securePassword)

# 挂载共享目录为临时驱动器
New-PSDrive -Name TempShare -PSProvider FileSystem -Root "\\server\test\project\files" -Credential $cred

# 执行复制操作
Copy-Item -Path D:\Config\*.* -Destination "TempShare:\" -Recurse

# 移除临时驱动器(可选)
Remove-PSDrive TempShare

4. 验证目标共享目录的权限

  • 登录到共享目录所在服务器,检查:
    • 你的服务账户(或代理运行账户)是否在共享目录的「共享权限」和「NTFS权限」中拥有写入/修改权限;
    • 权限是否被最近的变更覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 17:18:22