【问题标题】:Security needed for TFS Windows Machine File CopyTFS Windows 机器文件复制所需的安全性
【发布时间】:2017-08-07 20:39:40
【问题描述】:

我在 TFS 2015 中复制 Windows 机器文件时遇到了一些问题。

我们正在使用机器文件复制将我们的工件移动到 Web 服务器,然后运行 ​​IIS 部署。当它在我的凭据下运行时,它工作正常。但是,当我尝试在本地计算机上使用管理员运行它时,出现以下错误。


2017-08-03T09:26:52.4173924Z ROBOCOPY :: 强大的文件复制 适用于 Windows
2017-08-03T09:26:52.4173924Z -------------------------------------------------- ----------------------------- 2017-08-03T09:26:53.6518030Z 开始时间:2017 年 8 月 3 日 10:26:52 2017-08-03T09:26:53.6518030Z 2017/08/03 10:26:53 错误 5 (0x00000005) 获取目标 \Server\C$\Deployment 的文件系统类型 Folder\Release\ 2017-08-03T09:26:53.6518030Z 访问被拒绝。
2017-08-03T09:26:53.6518030Z 来源: C:\Agent\agent_work\03f953eca\Release CI 测试\drop_PublishedWebsites\Site_Package\
2017-08-03T09:26:53.6518030Z 目标 - \Server\C$\Deployment Folder\Release\ 2017-08-03T09:26:53.6518030Z 文件:.
2017-08-03T09:26:53.6518030Z 2017-08-03T09:26:53.6674336Z
选项:. /S /E /DCOPY:DA /COPY:DAT /B /R:1000000 /W:30
2017-08-03T09:26:53.6674336Z -------------------------------------------------- ---------------------------- 2017-08-03T09:26:53.9643156Z 2017/08/03 10:26:53 错误 5 (0x00000005) 创建目标目录 \Server\C$\Deployment Folder\Release\ 2017-08-03T09:26:53.9643156Z 访问被拒绝。
2017-08-03T09:26:53.9955634Z \Server 已成功删除。
2017-08-03T09:26:54.0268146Z ##[错误]资源复制失败: 服务器 2017-08-03T09:26:54.0268146Z ##[错误]复制失败。咨询 robocopy 日志了解更多详情。

我知道要执行Windows机器文件复制管理员用户只需要对目标服务器的管理员访问权限,他们实际上是否也需要访问构建服务器?

这可能是个问题的原因是某些服务器位于 DMZ 内,因此无法访问我们的 Active Directory。我不明白如何让一个用户拥有对我们网络中的服务器和 DMZ 中的服务器具有管理员访问权限的用户。如果是这种情况,我想知道如何使用 TFS 发布管理将我们的人工制品部署到这些服务器上。

【问题讨论】:

  • 从本质上讲,这不是 TFS 问题,而是权限问题,如果代理运行的用户没有文件夹的权限,它将永远无法工作。您能否在目标服务器上安装 TFS 代理?
  • 如果您手动使用 robocopy 命令将文件从构建服务器复制到目标计算机,会出现什么结果?如果问题与 tfs 相关,这将缩小范围。
  • 大家好,感谢您的指点。你是对的,这完全取决于权限。我以服务帐户登录构建服务器,无法访问该文件夹。因此,我与所有人共享了 Web 服务器上的文件夹,然后可以访问它。所以 Robocopy 现在可以正常工作了。 Web 部署现在不适用于本地管理员,所以这是下一个问题 ;)

标签: tfs tfs-2015 robocopy


【解决方案1】:

针对 Windows 机器文件复制任务中的 Access is denied 错误。就像上面讨论的评论一样,您需要为服务帐户的网络服务器上的共享文件夹提供足够的权限。

至于使用本地管理员帐户部署到 DMZ 中的服务器。有两种选择:

选项 1 - 使用 WMF-v5 和 PowerShell 任务

要在 WMF v5 中通过 WinRM 会话发送文件,您可以使用 Copy-Item cmdlet。例如,

$session = New-PSSession -ComputerName <computername>
Copy-Item <yourfile> -Destination 'C:' -ToSession $session

选项 2

DMZ 中的机器是否具有到本地 TFS 的视线?如果是, 像 Daniel 建议的最简单的方法,您可以在 服务器 并使用 TFS 对其进行配置。您可以使用类似的阴影 使用 TFS 配置代理的帐户方法。

配置完成后,代理会自动将关联的工件下载到 本地机器。

更多详情请参考 Roopesh Nair 的回答:TFS 2015 Update 2 Release Management - Deploying across untrusted domains and to servers in the DMZ

【讨论】:

  • 非常感谢,这项任务已经交给了可能真正了解这类事情的基础架构人员,我想我现在会回到编码方面;)再次感谢。
猜你喜欢
  • 1970-01-01
  • 2020-04-05
  • 2012-07-29
  • 1970-01-01
  • 2010-09-17
  • 1970-01-01
  • 1970-01-01
  • 2010-09-22
  • 1970-01-01
相关资源
最近更新 更多