【问题标题】:Windows Machine File Copy task without using admin credentials不使用管理员凭据的 Windows 机器文件复制任务
【发布时间】:2020-07-27 21:57:05
【问题描述】:

我想将构建工件从 $(System.ArtifactsDirectory) 复制到远程 Windows Server 2016 上的共享文件夹。为此,我正在使用“Windows 机器文件复制”任务。当我使用它时它可以工作-

- task: WindowsMachineFileCopy@2
displayName: 'Copy build artifacts'
inputs:
  SourcePath: '$(System.ArtifactsDirectory)/*'
  MachineNames: 'targetHostname'
  AdminUserName: 'domain\administrator'
  AdminPassword: '******'
  TargetPath: 'D:\sharedfolder'

但我不想使用您在上面看到的管理员凭据。我读了 MS doco-https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/windows-machine-file-copy?view=azure-devops

管理员凭据参数 AdminUserNameAdminPassword 是可选的。但是我删除它们复制任务失败。所以我的要求是 - 我们不想使用用户名和密码。相反,我们想使用 Azure 服务主体。有没有办法可以使用服务主体而不是用户名和密码来复制文件?

【问题讨论】:

    标签: azure-devops azure-pipelines-release-pipeline file-copying


    【解决方案1】:

    所以我的问题是——如何在不使用任何凭据的情况下复制文件?

    如果您想在不使用任何凭据的情况下复制文件,这意味着您需要设置任何人都可以访问的目标文件夹的权限。

    显然这是不安全的,我们不建议您这样做。如果您有理由坚持这样做并且可以确保信息安全,可以参考以下方式。

    您可以将文件夹共享给远程机器上的所有人:

    然后,我们可以使用复制任务将构建工件从$(System.ArtifactsDirectory) 复制到远程Windows Server 2016 上的共享文件夹:

    我用远程 Windows Server 2012 对其进行了测试,它运行良好。

    希望这会有所帮助。

    【讨论】:

    • 感谢@Leo Liu-MSFT。好吧,我想我的要求并不清楚。我的计划是使用 Azure 服务主体而不是带有用户名和密码的服务帐户。我已经改写了上面的描述。
    • @abhishek,嗯!您更新的问题与您的原始问题非常不同。恐怕您无法将 Azure 服务主体用于远程 Windows Server 2016。它曾经为 Azure 上的源服务。
    • 这个问题怎么样?上面的答案是否解决了您的问题,如果是,您可以Accept it as an Answer,这样它可以帮助遇到同样问题的其他社区成员,我们可以存档这个帖子,谢谢。如果没有,请告诉我们您是否需要进一步的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-19
    • 1970-01-01
    • 2018-10-08
    • 2019-10-20
    • 1970-01-01
    相关资源
    最近更新 更多