我正在使用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在做什么......
psexec -i -u "nt authority\network service" cmd.exe
因此,步骤2使用NETWORK SERVICE帐户启动命令提示符。当我从此命令提示符运行步骤3时,我收到了相同的2250错误。所以这是好的b / c现在TFS已经不在了,我更接近真正的问题。
只是为了笑容,我将NETWORK SERVICE添加到远程控制台的Administrators组。这没有解决问题。
所以这就是我所在的地方......
所以在我看来,问题显然与NETWORK SERVICE帐户有关。问题是如何让psexec与此帐户一起运行?
更新
以下是显示Administrators组中NETWORK_SERVICE帐户的对话框,它具有对路径的完全访问权限(c:\ temp)。
答案 0 :(得分:1)
假设您的两台机器名为TFSSERVER和TARGETMACHINE。
TFS服务器上的NetworkService将被视为TARGETMACHINE上的计算机帐户,即DOMAIN\TFSSERVER$
。 NT AUTHORITY组中的任何帐户都是本地帐户,因此您似乎只是将TARGETMACHINE的网络服务添加为管理员,而不是TFS计算机的网络服务。
尝试将TFS计算机帐户添加到您的权限列表中,看看它是否有效。
如果没有,请查看此相关问题,看看是否有任何帮助您:PSEXEC, access denied errors