当我使用TF.EXE命令行工具从Puppet调用TFS 2010时,导致“错误TF30063:您无权访问...”的原因

时间:2014-09-02 17:43:04

标签: tfs tfs2010 puppet

在Puppet中,我使用EXEC资源来查看"来自TFS的文件通过调用TF.EXE。 TF VIEW命令允许我在不需要工作空间的情况下获取文件。

我正在使用Puppet 3.4.3和Puppet Enterprise 3.2.3。 代理程序正在Windows 2008R2 VM上运行。

当自动调度的木偶代理运行时,TF VIEW命令全部成功。 当我使用" Live Management"要执行" runonce",TF VIEW命令都会将错误记录到puppet和windows应用程序日志中,臭名昭着的TF30063错误。

认为这两种方法可能使用不同的身份验证,我在TF命令中对用户/密码进行了硬编码。这并没有解决问题。

我尝试了其他的事情:

  1. 删除了TFS的auth缓存。
  2. 检查了IE代理设置(未使用代理)。
  3. 将我们的TFS服务器添加到IE中允许的站点列表中。
  4. 这是TF.EXE命令的风格:

    TF.exe view /collection:http://<MY_SERVER>.<MYCOMPANY>.com:8080/tfs/<MY_COLLECTION> /output:c:\phx_deployer\<MORE_PATH>\<MY_FILE>.zip $\ReleasePackages\<MORE_PATH>\<MY_FILE>.zip /login:<USER>,<PASSWORD> /version:L2.60.1.87 
    

    更新:

    进一步测试表明,不同的行为可归因于哪个用户在代理机器上运行puppet进程。

    1. puppet的帐户设置,具有适合TFS的权限。
    2. nt authority \ system,但没有。
    3. 我能够通过检查两件事来确定这一点:

      1. 在puppet enterprise GUI中,转到&#34; Nodes&#34;页面并单击问题节点。部分展示包括事实。 &#34; id&#34;事实告诉我们最近使用哪个用户帐户来运行目录。当计划的运行发生时,这将设置为tourspuppetsvc,即正确的帐户。当runonce运行时,将其设置为&#34; nt authority \ system&#34;。
      2. 在代理计算机上,在任务管理器中,我选中了“#34;显示所有用户的进程&#34;并且看到有多个&#34; ruby​​.exe * 32&#34;流程。至少有一个是&#34; SYSTEM&#34;。
      3. 为什么木偶 runonce 使用了错误的用户?现在这是一个真正的问题。

        更新2

        我了解到runonce由Marionette集体服务(pe-mcollective)执行,该服务在与普通木偶代理服务不同的帐户下运行。这是一个&#34;功能&#34;。我更改了运行此服务的帐户,所有工作都按预期工作。

1 个答案:

答案 0 :(得分:0)

“runonce”在Marionette Collective Service(pe-mcollective)下的代理人身上执行。这是一个与执行预定目录的服务不同的服务。

要解决此问题,我更改了与该服务关联的用户帐户并退回了该服务。