【问题标题】:SVN checkout automation realm password bypassSVN结帐自动化领域密码绕过
【发布时间】:2017-05-15 14:40:43
【问题描述】:

我正在尝试在 Powershell 中自动执行 SVN 结帐,因此没有提示:

svn --non-interactive --trust-server-cert --username foo --password bar checkout https://www.whatever.net/svn/something

但我收到错误消息:

svn: E170013: 无法连接到位于 URL 'https://www.whatever.net/svn/something' 的存储库 svn:E230001:服务器 SSL 证书验证失败:为不同的主机名颁发证书,颁发者不受信任

如果我手动执行(带提示),它会要求我输入领域密码和其余数据,然后我可以毫无问题地结帐。我在 Windows 10 Azure VM 上执行此操作。

我怀疑这是由于领域登录造成的 - 如何使用 Powershell 脚本自动执行/绕过它?

【问题讨论】:

  • 你用的是哪个svn客户端?
  • 乌龟svn,有关系吗?我使用它的 CLI 部分。
  • 您是否以不同的用户身份运行这些命令?您是否尝试以自己的用户身份运行命令 1:1?
  • 我以机器的唯一管理员用户身份运行它们;我通过 Invoke-Command 从另一个 VM 远程运行它们,结果相同。再次 - 我设法手动完成(提示)。
  • 我认为您只需将--no-auth-cache 添加到您的命令中。

标签: powershell svn


【解决方案1】:

解决了。我发布的命令很好。问题出在 Visual SVN 服务器的认证上。它使用了自签名证书,这不好。将其更改为签名证书,现在它可以正常工作。

【讨论】:

    【解决方案2】:

    我使用以下代码签出 Tortoise SVN 存储库。

    #Download a local copy of the SVN Repository
    #Wait for command to finish before moving forward
    $SVNDownloadJob = Start-Job {TortoiseProc.exe /command:update /path:"C:\SVN_Repo" /closeonend:1 | Out-Null} 
    Wait-Job $SVNDownloadJob
    Receive-Job $SVNDownloadJob
    

    你试过了吗?

    【讨论】:

    • 我必须结帐;假设我这样做,我如何接受证书和结帐? PS C:\Users\testAdmin> $test = Start-Job {TortoiseProc.exe /command:checkout /path:"C:/Test" /url:"https://www.whatever.net/svn/something"}
    猜你喜欢
    • 1970-01-01
    • 2011-12-24
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多