VSTS任务:窗口机器文件复制:系统错误53

时间:2017-01-07 23:39:01

标签: amazon-web-services azure-devops azure-pipelines-release-pipeline

我试图从VSTS发布到运行IIS的VM(在AWS上运行)。为此,我使用了三个任务。

  1. Windows机器文件复制
  2. 管理IIS应用
  3. 部署IIS应用程序
  4. 在发布之前,我正在运行一个构建管道,它为我提供了一个包含Web应用程序的工件(webapp.zip)。 当我手动将它放在服务器上时,我可以运行我的发布的第2步和第3步,应用程序正常工作。我遇到的问题是我没有让Windows机器文件复制工作。它总是抛出异常,给出“系统错误53:未找到网络路径'”。当然这些机器没有加入域,因为我在VSTS上运行我的版本并且需要AWS VM上的文件。我尝试打开端口445(用于文件共享)并确保用户拥有目标计算机上目标路径的权限。 所以我的问题是:如果两台机器没有连接,我怎样才能真正将文件从VSTS移动到AWS VM。

3 个答案:

答案 0 :(得分:1)

改为使用FTP UploadcURL upload步骤/任务。

关于如何创建FTP站点,您可以参考这篇文章:Creating a New FTP Site in IIS 7

答案 1 :(得分:-1)

免责声明:此答案仅说明如何满足使用Windows机器文件复制和管理/部署IIS任务的任务的要求。 请始终关注目标主机的安全性,其强化和安全评估是绝对必要的。

如评论中所述,您需要保护部署渠道免受外界影响,这是一个高级示例:

Protect your deployment channel


<强>答案: 为了使用您需要的Windows Machine File Copy task

    目标计算机(运行IIS的计算机)上的
  • 启用文件和打印机共享,从管理命令提示符运行以下命令:

    netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=yes
  • 确保在目标计算机上安装PowerShell 4或更新版本;从PS命令提示符执行以下操作将打印本地计算机上安装的版本:

    PS> $PSVersionTable.PSVersion

    要获取PowerShell 5,您可以安装WMF 5

  • 在目标计算机上,您必须已安装.NET Framework 4.5或更新版本;

对于其他两个任务(管理/部署IIS任务),两者都要求您在目标计算机上启用WinRM HTTPS侦听器。对于开发部署方案,您可以按照以下步骤操作:

  • 从官方VSTS任务GitHub存储库下载ConfigureWinRM.ps1 PowerShell脚本;

  • 从Administrative PowerShel命令提示符启用RemoteSigned PowerShell执行策略:

    PS> Set-ExecutionPolicy RemoteSigned
  • 使用以下参数运行脚本:

    PS> ConfigureWinRM.ps1 FQDN https

请注意,FQDN是您的计算机的完整域名,因为VSTS任务可以访问该域名,例如: myhostname.domain.example。 另请注意,此脚本从Internet下载两个可执行文件( makecert.exe winrmconf.cmd ),因此该计算机必须具有Internet连接。否则只需下载这两个文件,将它们放在脚本中,从脚本中注释掉下载文件调用。

现在,您已使用自签名证书启用了WinRM HTTPS侦听器。请记住使用“测试证书”选项(具有讽刺意味的是,不测试证书,更好的名称应该是“跳过CA检查”)这两项任务。

在生产部署方案中,您可能希望使用已正确签名的证书。

答案 2 :(得分:-2)

Windows文件复制旨在在同一网络上运行,并在互联网上启用它会打开您的服务器进行黑客攻击。它是为内部网络设计的。除非妥善管理,否则FTP也会带来严重的安全风险。

向前推进的最简单方法是在AWS中的VM上运行要发布的代理。然后,代理将下载工件到AWS VM并运行您需要安装的任何任务。

这使您可以在本地计算机上运行任务,而不会将其置于安全风险之中。

如果您需要在AWS中管理多台计算机,则可以轻松创建一个本地网络,允许您的单个代理使用Windows文件复制将文件推送到多个VM而无风险。