无法使用NETWORK SERVICE帐户运行PSExec

时间:2014-11-25 18:02:06

标签: security tfs psexec windows-security network-service

我正在使用TFS启动PSExec以运行创建安装程序的InstallShield进程。我们的TFS构建代理在NETWORK SERVICE帐户下运行。

我使用-u -p选项运行PSExec,我能够运行该命令,并从命令提示符远程计算机上成功构建安装程序。

但是在TFS中,我总是得到2250错误代码,安装程序不会构建。

为了解决问题,我将psexec命令更改为以下内容......

PsExec.exe -accepteula \\<machine> -u <username> -p <password> xcopy /y c:\temp\testing.bat c:\temp\1.bat

如果我从命令行运行上述内容,则会复制该文件。如果我从TFS运行上面的命令(在批处理文件中调用上面的内容),则它会因2250而失败。

所以要模拟TFS在做什么......

  1. 使用提升的管理员权限启动命令提示符
  2. 发布psexec -i -u "nt authority\network service" cmd.exe
  3. 运行包含上述xcopy命令的批处理文件
  4. 因此,步骤2使用NETWORK SERVICE帐户启动命令提示符。当我从此命令提示符运行步骤3时,我收到了相同的2250错误。所以这是好的b / c现在TFS已经不在了,我更接近真正的问题。

    只是为了笑容,我将NETWORK SERVICE添加到远程控制台的Administrators组。这没有解决问题。

    所以这就是我所在的地方......

    1. 如果我使用Administrator组中的登录名登录TFS框,请打开命令提示符,并使用-u -p参数运行xcopy命令批处理文件,一切正常。
    2. 如果我使用NETWORK SERVICE帐户启动cmd提示并运行与步骤1中相同的批处理文件,则会拒绝2250访问。
    3. 所以在我看来,问题显然与NETWORK SERVICE帐户有关。问题是如何让psexec与此帐户一起运行?

      更新

      以下是显示Administrators组中NETWORK_SERVICE帐户的对话框,它具有对路径的完全访问权限(c:\ temp)。

      NETWORK_SERVICE is in the Administrators group

      enter image description here

1 个答案:

答案 0 :(得分:1)

假设您的两台机器名为TFSSERVER和TARGETMACHINE。

TFS服务器上的NetworkService将被视为TARGETMACHINE上的计算机帐户,即DOMAIN\TFSSERVER$。 NT AUTHORITY组中的任何帐户都是本地帐户,因此您似乎只是将TARGETMACHINE的网络服务添加为管理员,而不是TFS计算机的网络服务。

尝试将TFS计算机帐户添加到您的权限列表中,看看它是否有效。

如果没有,请查看此相关问题,看看是否有任何帮助您:PSEXEC, access denied errors