场景如下:
我已将 TeamCity 设置为使用运行 Windows Server 2012 R2 的 AWS EC2 主机作为构建代理。在此配置中,TeamCity 代理服务作为 SYSTEM 运行。我正在尝试将 FastBuild 实现为我们的新编译过程。为了使用 FastBuild 的分布式编译功能,构建代理主机需要访问共享网络文件夹。不幸的是,我似乎无法从一台机器到另一台机器进行这种访问。
为了帮助进一步解释,我将使用命名示例。网络文件夹 C:\Shared-Folder 位于名为 Central-Host 的主机上。构建代理存在于 Builder-Host 上。一切都在通过 AWS 安全组相互完全网络许可的 EC2 主机上运行 Windows Server 2012 R2。我需要的是从 Central-Host 共享一个目录,以便 Builder-Host 可以通过如下目录结构完全访问它:
\\Central-Host\Shared-Folder
通过使用默认管理员帐户 RDP 进入两台主机,我可以非常轻松地设置网络共享并浏览(在 Builder-Host 上时)到 \\Central-Host\Shared-Folder 位置。我也可以打开命令行并运行:
type NUL > \\Central-Host\Shared-Folder\Empty.txt
在该联网位置创建一个空文本文件的结果。
问题来自 SYSTEM 帐户。当我抓住 PSTOOLS 并使用命令时:
PSEXEC -i -s cmd.exe
我可以测试 TeamCity 将给出的命令。同样,它是作为 SYSTEM 运行的服务,我需要强调的是,由于我们在用户帐户类型下使用 TeamCity 代理时遇到的其他问题,它无法更改为普通用户。
经过大量搜索,我发现了如何设置 Active Directory 服务,以便我可以从域中添加用户和计算机,但这样做之后,我仍然面临访问被拒绝错误。我可能错过了一些重要的东西,我希望这里有人可以提供帮助。我相信当我可以成功运行上面显示的“type NUL”命令时,这个问题将被视为“解决”。